阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記

前言

之前和阿里的一個面試官交流中,他講到對於性能要求高,需求變化多的互聯網項目來說,sql直接優化上,mybatis要比hibernate方便很多,用在sql優化上的開發時間太長,阿里巴巴的持久層拋棄Hibernate,採用了MyBatis框架。

於是趁熱打鐵,研究了一下MyBatis。MyBatis框架的核心功能其實並不難,無非就是動態代理和jdbc的操作,難的是寫出來可擴展,高內聚,低耦合的規範代碼。

1、MyBatis框架流程簡介
阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記

在手寫自己的Mybatis框架之前,我們先來了解一下Mybatis,它的源碼中使用了大量的設計模式,閱讀源碼並觀察設計模式在其中的應用,才能夠更深入的理解源碼。

2、梳理MyBatis的設計思路
阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記

創建SqlSessionFactory實例

實例化過程中,加載配置文件創建configuration對象

通過factory創建SqlSession

通過SqlSession獲取mapper接口動態代理

動態代理回調sqlsession中某查詢方法

SqlSession將查詢方法轉發給Executor

Executor基於JDBC訪問數據庫獲取數據

Executor通過反射將數據轉換成POJO並返回;給SqlSession

將數據返回給調用者

3、MyBatis三大核心階段
阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記

初始化階段:讀取XML配置文件和註解中的配置信息,創建解析對象,並完成各個模塊的初始化工作。就是把我們的配置文件加載到內存裏面去。在sqlSession初始化的時候加載到內存中去的。

代理階段:封裝iBatis的編程模型,使用mapper接口開發的初始化工作。

數據讀寫階段:通過SqlSession完成SQL的解析,參數的映射,SQL的執行,結果的反射解析過程。

在這免費分享一個手寫MyBatis框架視頻教學,從源碼講解手寫MyBatis框架,學習源碼。
阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記
4、深入解析Mybatis

爲了能讓大家快速掌握MyBatis,升職加薪、跳槽大廠的時候更有底氣。在這分享一個MyBatis源碼學習文檔,這份文檔從MyBatis源碼的角度分析Mapper綁定過程、SqlSession操作數據庫原理、插件實現原理等

由於篇幅限制,小編這裏只將此實戰文檔的所含內容全部展現出來了,需要獲取完整文檔用以學習的朋友們可以點擊鏈接免費領取:https://shimo.im/docs/TC9Jq63Tp6HvTXdg
共7個部分

第一部分:MyBatis 入門

MyBatis是什麼、爲什麼要使用MyBatis、如何使用MyBatis、小結
阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記

第二部分:配置文件解析過程

配置文件解析過程分析,小結
阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記

第三部分:映射文件解析過程

映射文件解析解析入口、解析映射文件、Mapper接口綁定過程分析、處理未完成解析的節點、小結
阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記

第四部分:SQL執行流程
阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記
第五部分:內置數據源

內置數據源初始化過程、UnpooledDataSource、PooledDataSource、小結
阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記

第六部分:緩存機制

緩存類介紹、CacheKey、一級緩存、二級緩存、小結
阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記

第七部分:插件機制

插件機制原理、實現一個分頁插件、小結
阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記

MyBatis源碼筆記全目錄

阿里Java二面“跪敗”MyBatis源碼後,面試官推薦我看這份源碼筆記

獲取方式:https://shimo.im/docs/TC9Jq63Tp6HvTXdg

來源:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章