該系列檔案是本人在學習 Mybatis 的原始碼程序中總結下來的,可能對讀者不太友好,請結合我的原始碼注釋(Mybatis原始碼分析 GitHub 地址、Mybatis-Spring 原始碼分析 GitHub 地址、Spring-Boot-Starter 原始碼分析 GitHub 地址)進行閱讀
MyBatis 版本:3.5.2
MyBatis-Spring 版本:2.0.3
MyBatis-Spring-Boot-Starter 版本:2.1.4
整體架構
本文主要分享 MyBatis 專案的一個整體情況,對 MyBatis 有個整體的了解,可以去 MyBatis GitHub 上面 Fork 到你自己的 GitHub 上面,然后拉取到自己本地
專案結構
根據包名差不多就可以知道每個模塊的作用
整體架構
MyBatis 的整體架構分為三層:基礎支持層、核心處理層和介面層
按照 MyBatis 這個架構圖從下往上對其進行逐步分析,筆者是根據芋道原始碼《精盡 MyBatis 原始碼分析》一系列檔案學習 MyBatis 的,非常感謝~
基礎支持層
基礎支持層,包含整個 MyBatis 的基礎模塊,這些模塊為核心處理層的功能提供了良好的支撐
- 決議器模塊:決議檔案,處理占位符
- 反射模塊:對 Java 原生的反射進行良好的封裝,進行了一系列的優化,提供更加簡潔易用的 API 方便使用
- 例外模塊:定義 MyBatis 自己的 Exception
- 資料源模塊:提供相應的 DataSource 資料源實作,支持與第三方資料源的繼承
- 事務模塊:對資料庫中的事務進行了抽象,提供事務介面的簡單實作
- 快取模塊:提供一級快取和二級快取的支持
- 型別模塊:提供別名機制,JDBC Type 和 Java Type 之間的轉換
- IO模塊:提供資源加載功能
- 日志模塊:提供日志輸出,支持集成第三方日志框架
- 注解模塊:提供相關注解
- Binding模塊:提供 Mapper 介面與 XML 映射檔案進行關聯的支持
核心處理層
核心處理層,實作了 MyBatis 的核心處理流程,包括 MyBatis 的初始化以及完成一次資料庫操作的涉及的全部流程
介面層
介面層,核心為 SqlSession 介面,該介面定義了 MyBatis 暴露給應用程式呼叫的 API,也就是上層應用與 MyBatis 互動的橋梁,介面層在接收到呼叫請求時,會呼叫核心處理層的相應模塊來完成具體的資料庫操作
總結
總的來說,MyBatis 的代碼不多,比較簡單易懂,按照上面三個模塊(基礎支持層 => 核心處理層 => 介面層)逐步進行分析,后續會提供一系列的檔案,包含 MyBatis 與 Spring 和 Spring Boot 集成的原始碼決議,請熟讀 MyBatis 官方檔案
參考文章:芋道原始碼《精盡 MyBatis 原始碼分析》
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/226121.html
標籤:Java
上一篇:python全堆疊筆記
下一篇:python全堆疊筆記
