作者:小傅哥
部落格:https://bugstack.cn
沉澱、分享、成長,讓自己和他人都能有所收穫!?
1. 為甚,擼Mybatis
我就知道,你會忍不住對它下手!?
21年帶著粉絲夥伴擼了一遍 Spring 原始碼,通過提取整個框架中的核心邏輯,簡化程式碼實現過程,漸進式開發逐步實現 IOC、AOP 中的核心功能。讓讀者可以由淺入深的學習 Spring 的設計思路和落地程式碼,也能讓更多的讀者可以讀懂 Spring 原始碼,當然這也包括讓一些跟著動手實踐的讀者在面試中脫穎而出!
吃過小傅哥
程式碼的讀者,都知道TMD真香,網盤1個T的學習視訊都刪了,用來存小傅哥的技術資料。所以小傅哥日常也被讀者催更,傅哥寫Mybatis吧
、傅哥寫Mybatis吧
、傅哥寫Mybatis吧
,既然你們都喊了這麼久了,我也該把這事辦了。
2. 好奇,驅動學習
從小傅哥最開始對 Mybatis 感興趣,主要來自於好奇:“為什麼在使用 Mybatis 的時候,只需定義一個介面,不用寫實現類就能使用 XML 中或者註解上配置好的 SQL 語句,就能完成對資料庫 CRUD 的操作呢?” 原來這裡最核心的是用到了介面代理類,把每一個資料庫操作的 DAO 介面都用運算元據庫的代理類實現,並註冊到 Spring 容器讓使用者去使用。
其實很多時候對技術的深度學習
就是來自於這樣一點點的好奇
和一晚晚的折騰
,雖然會遇到很多磕磕絆絆的 bug,但經過自己的思考、整理、驗證、彙總,你終會提煉出最有技術價值的核心流程和脈絡資訊,就像我們上面這張圖一樣,雖然它不是全部但這卻是最重要的一部分。
3. 目標,肝成啥樣
像我們之前完成手寫 Spring一樣,拆解功能、簡化流程、漸進實現,讓讀者能夠更容易的學習到最有價值的知識。
在手寫的過程中學習 Mybatis 從解析、繫結、反射、快取,到會話和事務操作,以及如何與 Spring 進行關聯註冊 Bean 物件,完成整合部分功能邏輯。通過這些內容的拆解實現,讀者夥伴就可以非常清楚的知道這些核心功能都是如何實現的了,以後再閱讀 Mybatis 原始碼也就知道從哪開始到哪結束了。
4. 計劃,執行落地
- 小傅哥之前也寫過簡版的 Mybatis、Mybatis-Spring,但當時主要是把重點放在和 Spring 的結合上,對於 ORM 的框架實現部分只是一個非常最基本的實現。
- 所以計劃這次按照 Mybatis 的框架結構,把重點放在 ORM 功能實現為主,通過原始碼分析和功能實現的方式完成這次框架功能的開發。在每次開發功能時候都會基於上次的章節進行內容迭代,慢慢的把這些功能類累加出來,這樣的方式也更好讓讀者理解每一個功能都是怎麼被設計進來並開發實現的。
5. 上車,我們們出發
車來了、車來了 ? 鑑於以往的分享學習方式,像手擼 Spring 最後課程編寫完成後,做成 PDF 來賺取一點辛苦費,不過效果有些差還容易被白嫖PDF ? (真的希望能在技術分享的路上持續的走下去
)。
其實像小傅哥這樣的 Spring 學習小冊如果投放到一些平臺,最終的收益會比現在高很多,可又感覺那種方式會限制住我的操作
,也不想被過大的宣傳,學完能搞個P7!所以如果你願加入我的星球,支援我也是可以的。
加入學習:https://t.zsxq.com/jAi2nUf
6. 總結,一點建議
可能很多小夥伴的網盤都有幾百G的資料的,但其實並沒有時間去看,一方面是這些資料都是七七八八拼湊的,很難有一條完整的脈絡,甚至有些資料已經過時了,只不過放在網盤裡感覺心安一樣。
小傅哥之前也收藏資料,把2T的網盤都塞滿了,但過去這麼多年了,也沒看過。所以千萬記住,別被無窮的資料,佔用了有限的時間,只有成體系的學習才能收穫最多。只追求快,那是最大的學習障礙!