1. 程式人生 > >精盡Spring MVC原始碼分析 - 調式環境搭建

精盡Spring MVC原始碼分析 - 調式環境搭建

> 該系列文件是本人在學習 Spring MVC 的原始碼過程中總結下來的,可能對讀者不太友好,請結合我的原始碼註釋 [Spring MVC 原始碼分析 GitHub 地址](https://github.com/liu844869663/spring-framework) 進行閱讀 > > Spring 版本:5.2.4.RELEASE > 因為 `spring-mvc` 專案,是 `spring-framework` 的**子專案**,所以需要拉取 `spring-framework` 整個工程,包含 Spring 所有的子專案,本系列文件只分析 MVC 相關模組 **依賴工具** - 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 專案比較大,從倉庫中拉取程式碼的時間會比較長,請耐心等待(也可以直接下載 ZIP 包,解壓後執行下述命令再匯入 IDEA 中) 開啟 IDEA Terminal ,輸入如下命令,預編譯 `spring-oxm` 專案: ```shell ./gradlew :spring-oxm:compileTestJava ``` 在拉取專案的過程中很大的可能會遇到各種問題,別慌,依次解決即可 `spring-framework` 專案下,一共有四個和 web 相關的專案,大體關係如下:
可以看到 `spring-webmvc` 不是一個單獨的專案,他有依賴的 `spring-web` 父專案,也有兩個 `spring-webflux` 和 `spring-websocket` 兄弟專案 關於本次的 Spring MVC 原始碼分析,僅分享 `spring-webmvc` 部分,如果對另外兩個 webflux 和 websocket 專案感興趣,可以自己 Google,因為筆者對它們還沒太多的接觸 **程式碼統計** 通過 [IDEA Statistic](https://plugins.jetbrains.com/plugin/4509-statistic) 外掛,統計了 `spring-webmvc` 專案的程式碼量,如下圖所示:code-statistic
可以看到總的 Java 程式碼行數在 27763 行,Spring 的註釋行有點多,加上筆者新增的相關注釋以及其他空行等,所以總的行數會相對比較多,Java 程式碼量還是有點多:cry: 本系列文件不會分析`spring-webmvc`所有的程式碼,加上還需要分析 `spring-web` 中的相關程式碼,所以挑選其中較為核心的部分進行分析,相對來說沒有那麼複雜 關於 Spring 中的註釋率達到了 40% 左右,是非常值得學習的