【筆記】拉勾Java工程師高薪訓練營-第一階段 開源框架源碼解析-模組一 持久層框架涉及實現及MyBatis源碼分析-任務三:Mybatis源碼剖析
- 2020 年 11 月 16 日
- 筆記
- Java高薪訓練營筆記
以下筆記是我看完影片之後總結整理的,部分較為基礎的知識點也做了補充,如有問題歡迎溝通。由於本任務大多為程式碼講解,相關內容在講義裡面都有,所以這裡基本上沒有什麼內容。網上有更多更好的材料可以參考學習,如果需要講義,可以留下郵箱。
任務三: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的動態代理生成,詳細內容可以參考之前寫的關於代理模式的博文,此處不再贅述。

