mybatis源碼整體架構一覽

1.每個包的作用以及描述

image.png
org.apache.ibatis
    + annotations  定義注解
    + binding   映射綁定,mapper.xml等映射文件相關實體抽象
    + builder   解析配置文件,以及映射文件竿音,包括xml,以及注解
    + cache     緩存,一級緩存谎砾,二級緩存    
    + cursor     游標
    + datasource 數據源
    + exceptions 異常
    + executor   執(zhí)行器
    + io         資源加載相關IO操作
    + javassist  
    + jdbc       jdbc和sql相關
    + logging    日志模塊
    + mapping    配置文件-映射文件相關的類
    + ognl       
    + parsing    解析配置文件和 核心類和 接口
    + plugin     插件
    + refection  反射
    + scripting    腳本解析相關
    + session      會話相關
    + transcation  事物
    + type         類型轉換

2.mybatis 整體架構(挑重點)

image.png

3.因為源碼用到了很多設計模式,這里解釋下用設計模式的好處

1 單一職責原則 (一個功能寫一個類捧颅,不要把什么都塞進一個類中景图,代碼臃腫)

一個類只負責一種職責,只有這種職責的改變會導致這個類的變更碉哑。繞口一點的正統(tǒng)說法:不要存在多于一個原因導致類變更

假如:類T 負責有兩種職責 P1挚币,P2;當P1發(fā)生改變時扣典,需要修改類T妆毕,這時候可能會對P2造成影響。

所以不要為了圖代碼量少贮尖,二將不同職責放入到一個類里面笛粘。

2 里氏替換原則

只要父類出現(xiàn)的地方,都可以用子類替換湿硝,并且不會對程序造成影響薪前,在實現(xiàn)上來說就是子類不要覆蓋父類的非抽象方法,但可以重載关斜。

重載時需要注意示括,入參的要求要比父類寬松(保證可以進入),返回要比父類更加嚴格(保證出去不會有問題)蚤吹,這也正是實現(xiàn)里氏替換的基礎例诀。

3 依賴倒置原則(面向接口編程)

高層模塊不應該依賴低層模塊,二者都應該依賴其抽象裁着,翻譯一下就是面向接口編程繁涂;接口一般是行為的集合,也就是盡可能的對行為抽象二驰。

抽象不應該依賴細節(jié)扔罪,細節(jié)應該依賴抽象。

4 接口隔離原則(接口功能單一)

翻譯一下就是接口的功能盡可能單一桶雀,接口本質上是兩個類之間關系的紐帶矿酵,關系中不需要有的唬复,在接口中不應該體現(xiàn)。如:A 通過接口I依賴B全肮,假如接口I中有A 不需要的方法敞咧,那么這個接口就是不合理的,B必須要實現(xiàn)這個不需要的方法辜腺,徒勞無功休建。

5 迪米特法則(最少知道原則)

也就是說一個對象要對其他對象保持盡可能少的了解,即低耦合性评疗,低耦合可以最大限度的保證代碼的可復用性测砂。這個實際上是針對被依賴的類來說的,對于被依賴的類百匆,盡可能的將復雜的邏輯封裝起來砌些,對外只提供public方法,外部不需要知道內部的邏輯加匈。

6 開閉原則(以前寫的東西存璃,最好不要動,做拓展就好)

盡量通過擴展來面對需求的更改或者系統(tǒng)的變化矩动,盡量不要對原有內容修改有巧。

后續(xù)展開對mybatis 從簡單的模塊到復雜的模塊講解,以及相關設計模式的回顧悲没。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市男图,隨后出現(xiàn)的幾起案子示姿,更是在濱河造成了極大的恐慌,老刑警劉巖逊笆,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件栈戳,死亡現(xiàn)場離奇詭異,居然都是意外死亡难裆,警方通過查閱死者的電腦和手機子檀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乃戈,“玉大人褂痰,你說我怎么就攤上這事≈⒙牵” “怎么了缩歪?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谍憔。 經常有香客問我匪蝙,道長主籍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任逛球,我火速辦了婚禮千元,結果婚禮上,老公的妹妹穿的比我還像新娘颤绕。我一直安慰自己诅炉,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布屋厘。 她就那樣靜靜地躺著涕烧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪汗洒。 梳的紋絲不亂的頭發(fā)上议纯,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音溢谤,去河邊找鬼瞻凤。 笑死,一個胖子當著我的面吹牛世杀,可吹牛的內容都是我干的阀参。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼瞻坝,長吁一口氣:“原來是場噩夢啊……” “哼蛛壳!你這毒婦竟也來了?” 一聲冷哼從身側響起所刀,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤衙荐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浮创,有當地人在樹林里發(fā)現(xiàn)了一具尸體忧吟,經...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年斩披,在試婚紗的時候發(fā)現(xiàn)自己被綠了溜族。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡垦沉,死狀恐怖煌抒,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情乡话,我是刑警寧澤摧玫,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響诬像,放射性物質發(fā)生泄漏屋群。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一坏挠、第九天 我趴在偏房一處隱蔽的房頂上張望芍躏。 院中可真熱鬧,春花似錦降狠、人聲如沸对竣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽否纬。三九已至,卻和暖如春蛋褥,著一層夾襖步出監(jiān)牢的瞬間临燃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工烙心, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留膜廊,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓淫茵,卻偏偏與公主長得像爪瓜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子匙瘪,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內容

  • 單一職責原則 (SRP) 全稱 SRP , Single Responsibility Principle 單一職...
    米莉_L閱讀 1,760評論 2 5
  • 前言 關于設計模式六大設計原則的資料網上很多铆铆,但感覺很多地方解釋地都太過于籠統(tǒng)化,特此再總結一波辆苔。 優(yōu)化第一步-單...
    ghroost閱讀 1,096評論 0 5
  • 目錄: 設計模式六大原則(1):單一職責原則 設計模式六大原則(2):里氏替換原則 設計模式六大原則(3):依賴倒...
    加油小杜閱讀 723評論 0 1
  • 轉載自 設計模式六大原則[http://www.uml.org.cn/sjms/201211023.asp#3] ...
    廚子閱讀 1,089評論 2 5
  • 聽了這次課算灸,感覺太好了,最近心里總是在想自己的目標驻啤,想法,在猶豫荐吵,也在發(fā)奮圖強骑冗!在計劃!現(xiàn)在寫下來先煎,三個月后贼涩,...
    綠茶_109閱讀 194評論 0 0