idea 導入spring源碼
學習spring源碼最好的方法就是運作源碼然後在源碼基礎上進行debug學習, 現在就總結一下spring源碼怎麼導入到idea中, 網上很多教程說需要安裝gradle,其實gradle是不需要本地安裝的, 本地安裝隻是為了提高建構速度。
-
下載下傳源碼,直接通過spring官網找到源碼,然後通過git導入idea.
spring源碼git位址: https://github.com/spring-projects/spring-framework
-
添加阿裡的maven倉庫,然後編譯源碼
這裡有兩個檔案需要修改,一個是根目錄下的build.gradle檔案,還有一個是buildSrc裡的build.gradle
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
mavenCentral()
gradlePluginPortal()
}
3. 修改完以在建構spring這樣速度會快很多。加載完以後新增一個自己的子產品。
4. 執行
spring-oxm
中的
compileTestJava
4. 引入context子產品
5. 測試檔案
@Configurable
@ComponentScan("com.yousuf")
public class AppConfig {
}
@Component
public class Clazz {
@Autowired
private Student student;
public Clazz() {
System.out.println("-----init clazz-----");
}
}
@Component
public class Student {
@Autowired
private Clazz clazz;
public Student() {
System.out.println("-------init student-------");
}
}
// 這個是測試類
public class ApplicationTest {
@Test
void app_test() {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
System.out.println(ctx.getBean(Clazz.class));
System.out.println(ctx.getBean(Student.class));
}
}
報錯資訊
build報錯子產品繼續執行,報錯資訊,這個時候需要引入報錯的子產品
kotlin-coroutines
繼續看報錯資訊, 找到該子產品并引入
項目終于全部跑通了
這裡隻是介紹了一下怎麼排除錯誤,錯誤不可能全部重制,解決錯誤的思路就是看哪個包的東西缺失就引入哪個包,其實我們可以參考其他包來進行引入,比如我們看一下
spring-web
的
build.gradle
檔案,參照着他的包引入,則基本不會報錯
參考他的修改我們的gradle檔案
這裡你就會發現其實和我們平時引用spring沒什麼差別,最關鍵的包
spring-core
和
spring-context
包,隻是之前導入的是jar包,現在導入的是子產品,我們需要測試哪個功能引入對應的子產品即可,最最核心的spring子產品就是這兩個。是以源碼導入和jar包使用沒什麼差別。