1. 程式人生 > >Spring-framework 源碼導入 IntelliJ IDEA 記錄

Spring-framework 源碼導入 IntelliJ IDEA 記錄

struct 自己 gin users group 技術 import 1.8 tar

前言

  想學習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框架的你有所幫助。

Spring-framework 源碼導入 IntelliJ IDEA 記錄