Spring探祕0:源碼構建

       從源碼構建出Spring框架運行,方便探索Spring源碼。

構建環境

  • OS: MacOS 10.15.2
  • JDK 1.8
  • Spring 源碼版本:5.1.x
  • Gradle: 項目源碼自帶的Gardle Wrapper(gradlew)
  • IntelliJ IDEA Ultimate 2019.3.3

構建過程

  1. 下載源碼:直接從GitHub下載Srping-framework的源碼,項目地址爲https://github.com/spring-projects/spring-framework ,下載源碼壓縮包時要注意選擇正確的版本分支。
  2. 解壓源碼壓縮包後,在源碼目錄下執行以下命令,進行構建(排除了test和javadoc兩個任務,因爲這兩個任務都很耗時間而且沒用):
./gradlew build -x test -x javadoc
  1. 等待構建完成,如果某個任務卡了很久,可以ctrl-c停掉,再重新開始,之前的構建記錄會有保存;如果下載依賴的速度很慢,可以在build.gradle中配置本地的鏡像,或者開啓科學上網。
  2. 構建成功會有以下提示:
    success
  3. 構建成功後可以導入到IntelliJ IDEA中。(通過Start up 界面或者 File -> New -> Project from Exsisting Sources… )
    startup
    import
  4. 稍等片刻,等待其配置完成,構建過程就結束了。

(如果直接在IDEA中構建,會出現各種各樣奇怪的問題,上面的過程我試了幾次,比較穩定。)

基於源碼運行Spring框架

       構建成功後,可以編寫一個啓動類,基於源碼運行Spring應用。

  1. 在源碼根項目下新建一個模塊:File -> New -> Module…
    newmodule
    modulename
  2. 稍等片刻,在IDEA設置完成後,在新建模塊的build.gradle文件中的dependencies塊中添加對spring-context的依賴,並在Gradle工具欄中刷新依賴(reimport):
    dependencies
  3. 完成後,就可以在新模塊中使用Spring-framework提供的類了。在該模塊下新建三個類,分別是配置類、啓動類和一個Bean:
    structure
    三個類的代碼:
@Configuration
@ComponentScan("cn.litiezhu.springdemo")
public class AppConfig {
}
public class DemoApp {
    public static void main(String[] args) {
        ApplicationContext context =
            new AnnotationConfigApplicationContext(AppConfig.class);

        DemoComponent component = context.getBean(DemoComponent.class);
        component.foo();
    }
}
@Component
public class DemoComponent {
    public void foo() {
        System.out.println("DemoComponent.foo()");
    }
}

運行DemoApp.main(),能夠得到正確的輸出,構建過程就正式宣告成功了!接下來就可以在這個項目中調試Spring源碼了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章