(一) Mybatis 原始碼解析之原始碼概述

2022-08-10 04:15:10 字數 917 閱讀 2378

原始碼結構圖:

基礎支撐層:技術元件專注於底層技術實現,通用性較強無業務含義;

核心處理層:業務元件專注 mybatis 的業務流程實現,依賴於基礎支撐層;

介面層:mybatis 對外提供的訪問介面,面向 sqlsession 程式設計;

原始碼腦圖結構: 

原始碼結構圖 :(建議和腦圖一起看,了解每個包存在的意義)

我們可以清晰的看到,mybatis的原始碼結構十分清晰,對外以暴露介面的形式,這裡運用了乙個設計模式 - 外觀模式 ,此設計模式的優點十分明顯:

使複雜子系統的介面變的簡單可用,減少了客戶端對子系統的依賴,達到了解耦的效果;遵循了 oo 原則中的迪公尺特法則,對內封裝具體細節,對外只暴露必要的介面。

為什麼mybatis需要將整個結構分為3層?為什麼要這麼分?依據是什麼?這樣分的好處是什麼?

**和系統的可維護性更高。系統分層之後,每個層次都有自己的定位,每個層次內部的元件都有自己的分工,系統就會變得很清晰,維護起來非常明確;

方便開發團隊分工和開發效率的提公升,因為龐大的框架乙個人的力量有限的,合理的分層分模組,可以使團隊的協作更加默契,也是我們在做**結構設計時需要注意的;

提高系統的伸縮性和效能。在系統分層了之後,我們只要把層次之間的呼叫介面明確了,那我們就可以從邏輯上的分層變成物理上的分層。當併發或者吞吐量上來了之後,我們可以採用集群部署的方式,將各個層分屬在不同的物理機上,這樣就會使我們的專案可以更好的橫向拓展。

mybatis之原始碼閱讀記錄

使用mybatis已經有幾年了,之前只是在專案中配置和使用,但是沒有去追究它的內部實現的細節,後來也償試去學習原始碼,看過一些文章,但是不得入門。後來在mybatis官網的入門指引找找到了靈感,終於對mybatis的實現有了一定的理解 在mybatis的官網上介紹了我們在不依賴spring類容器的情...

mybatis原始碼解析

最近閱讀了許久的mybatis原始碼,小有所悟。同時也發現網上有許多優秀的mybatis原始碼講解博文。本人打算把自己閱讀過的 覺得不錯的一些博文列出來。以此進一步加深對mybatis框架的理解。其實還有乙個目的是,本人也想寫一系列博文來分享自己對mybatis的理解。然而。個人文筆太差,列出的這些...

mybatis原始碼解析

類列表 sqlsessionfactory 說明 sqlsession物件的工場用於建立sqlsession。sqlsession 說明 執行sql的介面類。configuration 說明 資料庫連線和sql語句配置類。executor 說明資料操作方法介面類 步驟 載入xml檔案到xmlconf...