原创 Mybatis源碼(一)之Spring整合Mybatis掃描dao

帶着幾個問題我們來分析下Spring是如何整合Mybatis的 1.Spring是如何掃描Dao,將其轉換成BeanDefinition註冊到BeanFactory的? 2.爲什麼我們可以直接使用dao接口調用方法就能操作數據庫

原创 Java鎖Lock源碼分析(一)

Java中的鎖Lock源碼分析(一) Java中的鎖有很多,同時也是了整個併發包的基礎,可以說明白了鎖整個併發包你也就能明白一半了,如果之前你有所瞭解的話java中的鎖你或許對這些名詞有些概念: 獨佔鎖、共享鎖 公平鎖、非公平鎖

原创 Java線程池源碼分析(一)

Java線程池源碼分析(一) 使用線程池場景,好處,不在本文範圍內,我們分析的是源碼。 帶着幾個問題我們來分析源碼: ①線程池的池子是哪個數據結構 ②線程池構造方法的參數的含義 ③FutureTask如何獲取到結果

原创 Hystrix降級和熔斷實驗

文章目錄實驗爲目的feign中使用Hystrix核心鏈路請求流程實戰演示相關準備提供方代碼二方包代碼消費方代碼降級邏輯Hystrix 隔離配置開始試驗測試hystrix線程池打滿再次請求fallback測試提供方拋出異常降級和熔斷

原创 tomcat參數以及tcp連接-性能調優實驗

文章目錄tcp隊列和tomcat接受請求相關參數圖重要參數含義實驗步驟壓測實驗準備實驗工具TCP知識補充實驗參數設置小工具壓測實驗證明 tcp隊列和tomcat接受請求相關參數圖 該圖特別重要!!! 該圖特別重要!!! 該圖特別重

原创 事務傳播行爲引發的問題

事務傳播行爲引發的問題 有了前文的基礎篇對事物傳播行爲和隔離級別有了清楚的認識,我們在看下實戰中會遇到哪些問題。 業務背景: 一個商品可以領取券碼,功能是這樣的,一個商品預先設置庫存總量,並且導入庫存券碼。商品維度的信息和數量是

原创 Java鎖Lock源碼分析(二)條件鎖

本篇博文主要分析條件鎖的源碼實現、以及狀態兩個隊列的變化: 1)Condition的使用場景 2)lock方法的隊列(FIFO雙向無環鏈表)官方點說是同步隊列 sync queue 3)condition隊列(FIFO單向隊列)

原创 Java鎖lock源碼分析(三)讀寫鎖

Java鎖lock源碼分析(三)讀寫鎖 摘自網上一段話: ReadWriteLock管理一組鎖,一個是隻讀的鎖,一個是寫鎖。讀鎖可以在沒有寫鎖的時候被多個線程同時持有,寫鎖是獨佔的。 所有讀寫鎖的實現必須確保寫操作對讀操作的

原创 Mybatis源碼之溫故jdbc

我們回顧下之前沒有使用Mybatis,使用原生態jdbc的場景 public Integer insert(User user) { Connection conn = null; Prepared

原创 Mybatis源碼(二)之Spring整合mybatis創建SqlSession

Spring未整合Mybatis和整合之後Mybatis獲取的方式: Spring沒有整合Mybatis之前,獲取SqlSession很簡單就是 DefaultSqlSessionFactory.openSession(); S

原创 MyBatis源碼(五)之動態Sql解析運行階段參數處理

上篇博文分析到Mapper文件的讀取,以及啓動過程動態Sql的解析部分 MyBatis源碼(四)之mapper文件解析和動態Sql解析啓動階段 本博文繼續動態Sql的解析,在運行時的解析。前文也提過,在動態Sql中,sql的最終生

原创 MyBatis源碼(六)之動態Sql解析運行階段BoundSql

上篇博文講述的是dao方法參數是如何傳遞到Executor的MyBatis源碼(五)之動態Sql解析運行階段參數處理 一定要有這個基礎,在進行本博文你將看到一條Sql是如何拼裝出來的。 我把運行時信息打印出來,主要是在順便回顧

原创 Mybatis源碼(三)之SqlSession執行流程全貌

上一篇博文解釋了SqlSession是如何創建的Spring整合mybatis創建SqlSession 本篇博文注重你對流程的理解,可以增長你的內功修爲。 後續的博文也會寫一些實現細節跟你平時調試很相關,比如像動態Sql,讀取配

原创 MyBatis源碼(四)之mapper文件解析和動態Sql解析啓動階段

上篇博文介紹了Mybatis 執行流程全貌 非常重要。本博文mybatis啓動過程是如何解析配置文件的。 這還得從Spring的配置文件中SqlSessionFactoryBean 創建SqlsessionFactory說起。

原创 Java集合迭代時修改

Java集合迭代時修改 本文主要分如下幾個要點: 0)Java集合分類 1)對於熟悉JDK集合源碼的幫你加深對ConcurrentModificationException的下印象 2)對於迭代時修改提供一個正確的姿勢。 3)單