spring源碼解讀--環(huán)境搭建

spring源碼閱讀環(huán)境搭建

① 依賴工具

  • gradle
  • Git
  • jdk1.8
  • InteliJ IDEA
    筆者當(dāng)前由于囊中羞澀 所有的環(huán)境是windows環(huán)境,如有不一樣的碰見一些無法預(yù)測的問題的話,請?jiān)谖恼潞罄m(xù)中進(jìn)行留言。

②源代碼拉取

大家可以采用git直接fork的方式直接進(jìn)行代碼的拉取,建立自己的倉庫做自由的提交,我在這里就直接down zip源碼包進(jìn)行搭建了。官方倉庫地址。
拉取完項(xiàng)目之后,導(dǎo)入idea中 idea中的gradle會直接對項(xiàng)目源碼進(jìn)行build的(在此提醒,gradle安裝之后的環(huán)境變量還需自己配置,以及idea中有關(guān)gradle的配置還請自行的去百度解決)
打開 IDEA Terminal ,輸入如下命令,預(yù)編譯 spring-oxm 項(xiàng)目:

gradlew :spring-oxm:compileTestJava

③ 單元測試

在 spring-context 項(xiàng)目中的 src/test/java/example 目錄下,已經(jīng)提供了一些示例。
① 解析 XML 配置文件成對應(yīng)的 BeanDefinition 們的流程
可調(diào)試 org.springframework.beans.factory.xml.XmlBeanDefinitionReaderTests 的 #withFreshInputStream() 和 #withImport() 這兩個(gè)單元測試。
相比來說,后者比前者多了一個(gè) <import /> 標(biāo)簽的解析。當(dāng)然,XmlBeanDefinitionReaderTests 類中,其它方法也可以簡單調(diào)試下??磁钟训呐d趣哈。
② 加載 Bean 的流程
可調(diào)試 org.springframework.beans.factory.xml.AbstractBeanFactoryTests 這個(gè)單元測試類里的方法。
實(shí)際上,AbstractBeanFactoryTests 是一個(gè)抽象類,所以在運(yùn)行時(shí),需要選擇對應(yīng)的子類,例如 XmlListableBeanFactoryTests 類。
③ ClassPathXmlApplicationContext 的流程
可調(diào)試 org.springframework.context.support.ClassPathXmlApplicationContextTests 這個(gè)單元測試類里的方法。例如 #testResourceAndInputStream() 方法。
④ 解析 Properties 配置文件成對應(yīng)的 BeanDefinition 們的流程
可調(diào)試 org.springframework.beans.factory.support.PropertiesBeanDefinitionReaderTests 這個(gè)單元測試?yán)锏姆椒ā?br> ⑤ 調(diào)試 Spring AOP 相關(guān)的流程
⑥ 調(diào)試 Spring Transaction 相關(guān)的流程
⑦ 調(diào)試 Spring MVC 相關(guān)的流程

后續(xù)為大家連載解讀一下spring各模塊之間的寫作以及流程。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容