1. 程式人生 > >Spring和Spring Boot2.0原始碼閱讀環境搭建和結構

Spring和Spring Boot2.0原始碼閱讀環境搭建和結構

一:Spring

第一步:安裝git和gradle,以及Java8,並配置環境變數。

 

第二步:開啟gitbash,cd到你要放置spring原始碼工程的目錄,輸入:git clone https://github.com/spring-projects/spring-framework.git 等待下載完畢。

或者下載指定的release版本解壓縮。

 

第三步:預編譯spring-oxm模組。官網說:Pre-compile spring-oxm with ./gradlew cleanIdea :spring-oxm:compileTestJava

,即開啟cmd,切換到spring-framework工程目錄下,執行:gradlew cleanIdea :spring-oxm:compileTestJava

 

第四步:開始匯入工程,File->import project->選中spring-framework工程->import from external model->Gradle->finish經過一段時間專案匯入成功

 

第五步:設定project sdk為1.8,右鍵project->open module settings->sdks->點+號新建jdk1.8,找到jdk1.8的路徑,再選中project選項卡,設定project sdk為1.8

 

第六步:再建立一個簡單的spring-web專案模板,和spring其它模組放一起,通過main方法打斷點進行原始碼鑑賞。

 

二:Spring Boot

(1)github下載release版本原始碼或git clone相應的版本,地址:https://github.com/spring-projects/spring-boot

(2)cmd進入原始碼目錄,執行:mvnw.cmd clean install -DskipTests -Pfast

 

其中spring-boot-gradle-plugin專案使用jdk9,沒裝JDK9可以暫時先遮蔽

(3)idea 匯入專案

(4)最外層的pom中可能有如下問題:

${disable.checks} 識別不了,可以註釋掉相應的plugin

(5)spring-boot-project目錄下建立一個springboot專案模組,通過打斷點進行鑑賞。

三:Spring Boot2.0 程式碼結構

結構分析:

Spring-boot-project 核心程式碼,程式碼量很多(197508 行)
Spring-boot-samples 一些樣例 demo,程式碼量不多(9685 行),蠻有用的
Spring-boot-samples-invoker 裡面無程式碼
Spring-boot-tests 測試程式碼(1640 行)

spring-boot-project

Spring-boot-project 下面有很多模組,如下:

springboot2002

Spirng-boot

springboot

該模組 47760 行程式碼(含測試程式碼),Spring boot 主要的庫,提供了支援 Spring Boot 其他部分的功能,其中包括了:

在SpringApplication類,提供靜態便捷方法,可以很容易寫一個獨立的 Spring 應用程式。它唯一的工作就是創造並更新一個合適的 SpringApplicationContext
帶有可選容器的嵌入式 Web 應用程式(Tomcat,Jetty 或 Undertow)
一流的外部配置支援
便捷ApplicationContext初始化程式,包括對敏感日誌記錄預設值的支援