1. 程式人生 > >死磕Spring之IoC篇 - 除錯環境的搭建

死磕Spring之IoC篇 - 除錯環境的搭建

> 該系列文章是本人在學習 Spring 的過程中總結下來的,裡面涉及到相關原始碼,可能對讀者不太友好,請結合我的原始碼註釋 [Spring 原始碼分析 GitHub 地址](https://github.com/liu844869663/spring-framework) 進行閱讀 > > Spring 版本:5.1.14.RELEASE > > 開始閱讀這一系列文章之前,建議先檢視[**《深入瞭解 Spring IoC(面試題)》**](https://www.cnblogs.com/lifullmoon/p/14422101.html)這一篇文章 **依賴工具** - Gradle 6.4 - Git - JDK 1.8+ - IntelliJ IDEA 2020.1.1 筆者目前使用的是 Windows 系統,如果使用的是系統版本是 MAC OS 或者其他 IDEA 版本,可能會遇到相關問題,需自行 Google 處理 可參考 Spring 官方提供的 [import-into-idea.md](https://github.com/spring-projects/spring-framework/blob/master/import-into-idea.md) 或者 [import-into-eclipse.md](https://github.com/spring-projects/spring-framework/blob/master/import-into-eclipse.md) 進行匯入專案 **原始碼拉取** 從 [Spring 的 Git 倉庫](https://github.com/spring-projects/spring-framework) `Fork` 專案到自己的 Git 倉庫,方便我們在閱讀原始碼的過程中,可新增相應的註釋後提交程式碼,也可以直接拉取我的 [Spring Framework 原始碼分析 GitHub 地址](https://github.com/liu844869663/spring-framework) 閱讀 由於 Spring 專案比較大,從倉庫中拉取程式碼的時間會比較長,因為 Build 過程需要下載非常多的依賴,請耐心等待(也可以直接下載 ZIP 包,解壓後執行下述命令再匯入 IDEA 中) 開啟 IDEA Terminal ,輸入如下命令,預編譯 `spring-oxm` 專案: ```shell gradlew :spring-oxm:compileTestJava ``` 在拉取專案的過程中很大的可能會遇到各種問題,別慌,依次解決即可 `spring-framework` 專案下有很多子模組,核心模組: - spring-core:Spring 基礎 API 模組,如資源管理、泛型處理 - spring-beans:Spring Bean 相關,如依賴查詢、依賴注入 - spring-context:事件驅動、註解驅動、模組驅動等 - spring-aop:Spring AOP 處理,如動態代理、AOP 位元組碼提升 - spring-expression:Sping 表示式語言模組 這種面向模組開發方式,根據不同的功能進行劃分,根據需求引入對應的模組即可,對於開發人員比較友好 **程式碼統計** 通過 [IDEA Statistic](https://plugins.jetbrains.com/plugin/4509-statistic) 外掛,統計了`spring-core`、`spring-beans` 和 `spring-context` 三個模組的程式碼量,如下圖所示:code-statistic
可以看到總的 Java 程式碼行數在 **100580** 行,Spring 的註釋行有點多,加上筆者新增的相關注釋以及其他空行等,所以總的行數會相對比較多,感覺 Java 程式碼量具多,不過我們看核心內容就好了:smile: ------ 本系列文章是對 Spring IoC 進行分析,主要檢視 `spring-core`、`spring-beans` 和 `spring-context` 三個模組。當然,這三個模組涉及到的東西也非常多,我不會對 Spring IoC 涉及到的所有內容進行分析,例如資源載入、國際化、資料繫結、型別轉換等基礎功能不會做過多的分析,瞭解即可。 本系列文章分享的內容主要圍繞 Spring Bean 的生命週期和 Spring 應用上下文的生命週期展開,覆蓋到 Spring IoC 大部分內容,相信這些文章會讓你對 Spring 有一個更深的