Spring-framework 原始碼匯入 IntelliJ IDEA 記錄

丶Pz發表於2018-04-18

前言

  想學習spring框架,不看原始碼怎麼行。網上有很多教程,但是自己實施起來還是稍微有點坎坷的,不過最後還是成功了。遂以此文記錄。

  環境說明:

  Idea  2017.2.5

  spring-framework  v4.3.9.RELEASE

  gradle 2.12 (版本太高好像有問題)

原始碼下載

  首先我們從github上克隆 spring的原始碼。

  

  然後使用 git tag 命令檢視分支

  

  我們將4.3.9.RELAESE 版本的程式碼下載到本地。

  

  

  gradle 安裝這裡不在介紹。

開始匯入

  我們開啟原始碼資料夾,開啟 import-into-idea.md

  

 

   然後執行命令: gradle cleanIdea :spring-oxm:compileTestJava (以下是一個稍微漫長的過程~~)

   

  

  好,看到 BUILD SUCCESSFUL 很開心~~然後我們按照文件中的做即可。

  

  1. Pre-compile `spring-oxm` with `./gradlew cleanIdea :spring-oxm:compileTestJava`
  2. Import into IDEA (File->import project->import from external model->Gradle)
  3. Set the Project JDK as appropriate (1.8+)
  4. Exclude the `spring-aspects` module (Go to File->Project Structure->Modules)
  5. Code away

  

排除萬難

  現實中當然沒有文件中那麼順利,首先編譯會出一些錯誤,沒關係。我們先新建一個測試專案。 然後 File =>Project Structure. 選中測試專案,新增Dependencies。

 

   

  這裡要提一句,本來 common-logging我是沒有加的,後來就會報ClassNotFound。於是我在pom,xml引入就好了。

  

 

 <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>

 最終測試

  測試程式碼很簡單:

  

  

public static void main(String[] args) {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        context.start();
        UserService userService = context.getBean(UserService.class);
        String testResult = userService.getUserName();
        System.out.println(testResult);
    }

  

  然後執行,在原始碼中打個斷點,斷點命中:

   

  好了,剩下的我就不多說啦,我該去研究原始碼了!!!

總結

  整體而言還算順利,但是由於對modules不熟悉,所以中途遇到一些小問題。不過還好,算是解決了。希望文章對學習spring框架的你有所幫助。

相關文章