【原】Spring源碼淺析系列-導入源碼到Eclipse


    用了Spring幾年,平時也斷斷續續在項目里看過一些源碼,大多都是比較模糊的,因為一旦從一個地方進去就找不到方向了,只能知道它大概是做了什么事能達到這個功能或者效果,至於細節一般沒有太深入去研究。后來才知道是學習方式有誤,正常的應該是從它最原始的地方下手,至於學習Spring源碼原因就是因為它的方便和快捷還有顛覆了傳統的開發模式。例如剛開始學Servlet要編寫大量的Servlet,然后又要New不同的對象,然后又要在業務層調用JDBC,還要手動開關事務,還要處理異常等等。Spring核心就是IOC和AOP,所以接下來主要是想系列化的去研究ioc和aop在底層是如何做的。

 

#開發環境:

      系統:windows7.64位;jdk版本:1.7; eclipse版本:Mars Release (4.5.0); Gradle版本:gradle-2.4.1.2; Spring源碼:3.2x。

#下載Spring源碼

  1. 第一步肯定是需要把源碼下載下來,因為是研究spring的源碼,所以我是直接download到我本地;’前往github下載Spring源碼(或者通過git clone方式下載代碼,當然前提是電腦里此時已經安裝了github客戶端或者類似的工具),可以選擇下載mater分支,或者點擊Tags選擇release版本。(我選的是3.2x版本,因為之前有看過網上說早的版本變動小,最主要是3.2版本編譯比較穩)

 

    2.下載成功后打開壓縮包解壓到指定目錄,spring核心項目都包含在里面,例如spring-core,spring-context,spring-jdbc。源碼總共不會超過20M。

         

      3.此時並不能直接導入eclipse,因為這些項目還沒進行編譯,需要通過gradle進行編譯后才能被eclipse所識別,所以在此之前必須安裝好gradle插件,安裝gradle教程可以參考網上文章,和配置maven環境一樣的步驟;配置成功后通過cmd進入到指定的項目根目錄下執行 gradle cleanidea eclipse(比如我想編譯spring-core,我的項目位置在E:/spring/spring-core,則需要進入到E:/spring/spring-core下執行 gradle cleanidea eclipse,如果在E:/spring 這個目錄下執行的話會把所有的spring模塊都進行編譯)。

               4.編譯成功后如下圖所示,這時候就可以導入到eclipse。

              

 

               5.直接import編譯好的模塊到eclipse,完整導入如下所示:

              

 

 #遇到的問題:

        提示test不存在,點擊項目右鍵->Build Path->Java Build Path,在彈框中選擇Libraries,移除這些紅色X的包。

  

    

# 導入后雖然沒報錯但並不代表已經成功了,我們最終的目的是為了能讓spring項目跑起來方便我們去研究一些底層的實現。這時候就需要測試一下是否能正常運行;在spring項目內部提供了大量的test方法,其中我找了一個比較感興趣的IOC測試類,全稱叫 FactoryBeanTests.java,這個類在spring-beans項目下的根錄。

          

#FactoryBeanTests-withAutowiring.xml詳情

#運行后如下所示

 

#最后我會把編譯好的spring源碼上傳到oschina(速度有點慢,成功后我會貼上地址在這里)。其他人就可以直接下下來,省去編譯的過程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM