欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

新手學習spring源碼,該如何入手?

傅智翔2年前25瀏覽0評論

謝謝邀請!下面從以下幾點進行說明

1、學習Spring源碼前,需要想以下幾點

2、為什么要學習Spring源碼?

3、學習Spring源碼的方法

4、總結(jié)

學習Spring源碼前,我們需要想以下幾點?

① 為什么會存在Spring框架,能做什么?如果要我來做,我該怎么做?

② 然后我們在學習的過程中會遇到許多概念,比如IOC、AOP、DI、BeanFactory、ApplicationContext等一些概念,需要詳細了解明白

IOC: 緩存Bean的地方。存放在Map容器中。

DI: 可以是set/get/constructor,通過反射進行注入

AOP:為了增強 原始Bean的功能(代理技術(shù))

③ 能做什么?java中的萬能膠 ,做了什么?幫我們管理Bean,管理bean的生命周期

④ 如果需要我來做,我會怎么做? (怎樣手寫一個mini版Spring)

(1) 我們要預設(shè)一些規(guī)則,比如定義一些掃描注解、掃描哪些 包?

(2) 然后按照一定的順序去加載掃描包下的Class類,放入Map中。

(3) 掃描上面的Class 類,然后判斷是否實現(xiàn)了一些注解,如果實現(xiàn)了,實例化后放入Map中

(4) 依賴注入,給實例化的Bean進行屬性注入。

為什么要學Spring源碼?

在學習源碼前,我們需要知道為什么需要學源碼?

  1. 提升技術(shù)功底:學習源碼的優(yōu)秀思想,比如學些一些問題的解決思路,優(yōu)秀的設(shè)計模式,從而能很大的提升自己的功底。
  2. 深度掌握技術(shù)框架:如果我們源碼看多了,對于新技術(shù)或者框架的掌握速度會大幅提升,看下框架的Demo就能知道底層的實現(xiàn),技術(shù)框架很多都是通過用的,比如,舉幾個例子

① 為什么Mybatis 我們只需要寫Dao接口就可以了,因為Spring 底層幫我們做了代理,用到的技術(shù)就是動態(tài)代理。

② Dubbo 的遠程調(diào)用為什么和調(diào)用本地方法一樣呢?原因也是動態(tài)代理,Dubbo 把 調(diào)用的細節(jié)封裝在代理類中。

③ 還有一些攔截器思想:SpringMVC 攔截器、AOP 底層代碼的攔截器+遞歸思想、Mybatis插件攔截器等。

上述的技術(shù)都是一通百通,百變不離其宗。

3 快速定位線上問題: 遇到線上的問題,特別是框架源碼里的Bug,能夠快速定位,這就是你和被人的優(yōu)勢。

4. 對面試大有益處: 面試一線互聯(lián)網(wǎng)公司對于框架技術(shù)一般都會遇到源碼級別的。

5.擁抱開源社區(qū):參與到開源項目的研發(fā),結(jié)實更多大牛

學習Spring源碼的方法

1. 先使用:先看官方文檔快速掌握框架的基本使用,

2. 調(diào)試的時候,完全可以在運行環(huán)境,導入jar包就能調(diào)試,可以由針對性的打斷點

3. 抓主線:找一個demo入手,順藤摸瓜快速靜態(tài)看一遍框架的主線源碼(抓大放小),畫出源碼主流程圖,切勿一開始就陷入源碼的細枝末節(jié),遇到不明白的可以才,七分猜測三分驗證,如果猜對了,就會有成就感。

4. 畫圖做筆記:總結(jié)框架的一些核心功能點,從這些功能點入手深入到源碼的細節(jié),邊看源碼邊畫源碼走向圖,并對關(guān)鍵源碼的理解做筆記,把源碼里的閃光點都記錄下來,后續(xù)借鑒到工作項目中,理解能力強的可以直接看靜態(tài)源碼,也可以邊看源碼邊debug源碼執(zhí)行過程,觀察一些關(guān)鍵變量的值

5.整合總結(jié):所有功能點的源碼都分析完后,回到主流程圖再梳理一遍,爭取把自己畫的所有圖都在腦袋里做一個整合

總結(jié)

1、官網(wǎng)是最好的一手資料。

2、一定要在掌握框架的使用以后再去研究源碼

3、源碼可能需要你的一些技術(shù)準備:比如 java技術(shù)功底、java設(shè)計模式等

4.學習最好的方法就是兩個字: 重復,看源碼的 第一遍是很痛苦的,看第二遍 第三遍 ,你的思路就會越來越清晰。

5、學習最好的方法就是重復,耐得住 寂寞,你才會成為 最終的王者。

本文由碼農(nóng)的一天撰寫,如果你認同我的觀點的話,可以點贊加關(guān)注一下;如果你對本篇文章有其他見解的話,也歡迎在下方的評論區(qū)瀏覽討論!