【筆記】拉勾Java工程師高薪訓練營-第一階段 開源框架源碼解析-模組一 持久層框架涉及實現及MyBatis源碼分析-任務三:Mybatis源碼剖析

以下筆記是我看完影片之後總結整理的,部分較為基礎的知識點也做了補充,如有問題歡迎溝通。由於本任務大多為程式碼講解,相關內容在講義裡面都有,所以這裡基本上沒有什麼內容。網上有更多更好的材料可以參考學習,如果需要講義,可以留下郵箱。

任務三:Mybatis源碼剖析

3.1 Mybatis架構原理-架構設計_構件關係_總體流

架構設計

主要構件與相互的關係

總體流程

1 載入配置並初始化,配置主要來源於配置文件(conf.xml和xxxMapper.xml)和Java的註解
2 接收調用請求
3 處理操作請求
4 返回處理結果

3.2 Mybatis初始化過程

見PDF講義,此處不再贅述。

3.3 Mybatis執行sql流程

見PDF講義,此處不再贅述。

3.4 Mybatis執行器Executor源碼剖析

見PDF講義,此處不再贅述。

3.5 Mybatis StatementHandler源碼剖析

見PDF講義,此處不再贅述。

3.6 Mybatis的mapper代理方式getMapper()源碼剖析

見PDF講義,此處不再贅述。

3.7 Mybatis的invoke方法源碼剖析

見PDF講義,此處不再贅述。

3.8 設計模式——構建者設計模式

構建者模式屬於創建類模式,因此簡單說就是用來創建一個類的時候會使用到的,定義是將一個複雜對象的構建,和它的表示分離,似的同樣的構建過程可以創建不同的表示。

構建者模式經常會和工廠模式進行對比,工廠模式可以認為是生產出一個完整的對象,而構建者模式可以認為是一步一步,可選擇的通過構建一個個「基礎」內容,最終完成對象的構建,而這個對象不一定是完整的。

3.9 設計模式——工廠模式

Mybatis裡面的SqlSessionFactory使用的是簡單工廠模式,就是單純的根據入參,返回對應的對象,建議尋找其他材料輔助學習。

3.10 設計模式——代理模式

這裡用到的是JDK的動態代理生成,詳細內容可以參考之前寫的關於代理模式的博文,此處不再贅述。