本篇文章小編就帶大家,如何把 spring官網(wǎng) 源碼下載下來,并在spring項目中創(chuàng)建一個自己的模塊讓他Run起來,方便以后我們學(xué)習(xí)源碼,之后的系列文章中都會在此源碼基礎(chǔ)上做研究與學(xué)習(xí)!
當(dāng)然這篇文章講的
spring就是Spring Framework
1. 認(rèn)識
在下載源碼之前,我們首先應(yīng)該對spring源碼的結(jié)構(gòu)與版本有個認(rèn)知,搞清楚我們需要研究的哪幾個模塊和版本
1.1 模塊依賴結(jié)構(gòu)
展示主要模塊依賴

模塊依賴
1.1.2 分支列表

spring 分支列表
1.2 版本選擇
相信大家對 spring boot 都不陌生,我們都知道spring boot里面是依賴spring的。那我們可以看看spring boot現(xiàn)在發(fā)布版。

spring boot 版本
從上圖可以發(fā)現(xiàn)我們官網(wǎng)列出的版本中
2.1.13 和 2.2.5是正式發(fā)布版,但是小編還是選擇2.1.13版,那接下來我們在看看2.1.13版本依賴的是哪個版本的spring,我們可以去 maven倉庫 查看依賴關(guān)系。
spring boot 2.1.13 依賴 spring 版本
可以看到是依賴的
5.1.14.RELEASE版本。那么根據(jù)上面的 分支列表 我們此次 研究就選擇spring 分支 5.1.x
2. 導(dǎo)入源碼
2.1 環(huán)境準(zhǔn)備
開發(fā)工具idea
版本控制工具git
gradle 4.10.3 以上(推薦使用spring自帶的gradle)
2.2 代碼clong
因為是自己想研究spring代碼,所以小編建議把spring項目fork到自己的github倉庫下,然后下載自己倉庫的spring代碼,這樣方便我們后面做的注釋或者測試代碼可以提交上去。
2.2.1 項目gradle選擇
可以選擇默認(rèn)的,也可以選擇自己下載好的gradle

項目gradle選擇
2.2.1 復(fù)制git倉庫地址并利用idea下載
2.2.2 創(chuàng)建一個自己的模塊

創(chuàng)建自己模塊
2.2.2.1 修改自己模塊中g(shù)radle.build
添加spring-context依賴
dependencies {
compile(project(":spring-context"))
testCompile group: 'junit', name: 'junit', version: '4.12'
}
2.2.2.2 修改其它模塊中的配置
spring-core.gradle
compileOnly(project(":kotlin-coroutines"))
修改成
compile(project(":kotlin-coroutines"))
spring-context.gradle
optional(project(":spring-instrument"))
修改為
compile(project(":spring-instrument"))
2.2.2.3 執(zhí)行模塊依賴構(gòu)件
gradle4 buildDependents

gradle buildDependents
2.2.2.4 創(chuàng)建并啟動模塊

啟動模塊
2.2.2.4.1 創(chuàng)建一個Bean Component
@Service
public class HelloWorld {
public void say(){
System.out.println("hello world");
}
}
2.2.2.4.2 創(chuàng)建一個Main start
@ComponentScan("com.lykos")
public class Rocket {
public static void main(String[] args) {
AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext();
annotationConfigApplicationContext.register(Rocket.class);
annotationConfigApplicationContext.refresh();
annotationConfigApplicationContext.getBean(HelloWorld.class).say();
}
}
2.2.2.5 啟動項目
啟動成功如下

啟動成功例子
3. 感謝
感謝各位老鐵花時間觀看!
歡迎留言指正!
內(nèi)容持續(xù)更新!