Spring源碼深度解析系列(一)——導入源碼搭建環境

以下文章字數大約1600字,閱讀時間須要15分鐘左右。java

前言:git

若是提起Spring框架,可能你會很是熟悉,曾經或者如今都使用過。github

可是,可能不多人閱讀過Spring源碼。spring

最近也在思考,若是做爲開發人員來說,什麼纔是其核心競爭力。架構

我的感受,隨着工做年齡的增加,對java底層原理了解越透徹對於我的來說越重要。框架

瞭解底層原理,清楚架構邏輯實現這遠比會使用架構更具核心競爭力。由於,就算一個新框架東西不熟悉,你仔細看看用用也會熟練使用了,別人也是同樣很快掌握。eclipse

讀優秀框架的源碼就是其中一個比較有效提高自個人途徑,而,spring源碼是其中比較好的方式之一。ide

準備軟件工具

一、安裝git或者從Github上面下載源碼到本地,網址爲:https://github.com/spring-projects/spring-framework/源碼分析

本人版本爲5.1.2.

二、安裝gradle。下載地址:https://gradle.org/releases/

gradle的做用爲將源碼spring的項目轉成eclipse可用的工程。

導入源碼以及搭建環境

一、下載源碼

源碼從github上下載後,解壓到本地便可。可仔細觀察相關源碼,此時eclipse等工具還不能導入,每一個項目中沒有eclipse可識別的.classpath和.project文件。源碼須要使用gradle工具進行轉換。

如圖爲下載後spring源碼內容:

二、配置gradle

將gradle下載後,解壓安裝。須要配置環境變量。自行百度。

gradle安裝成功的標誌是在cmd中輸入命令 gradle -v 顯示內容。本人版本時4.9。

如圖:

圖片

三、源碼轉換

由於源碼較多,這裏不建議一塊兒將全部項目統一轉換。本人採用部分轉換的方法,即用到哪部分轉換哪部分的原理。

對於spring源碼第一部分先分析bean的機制,因此這裏只轉換spring-beans項目以及其依賴的spring-core和spring-jcl項目。

這裏以轉換spring-beans項目爲例。

打開cmd控制檯,切換到當前文件路徑下,執行命令:gradle cleanIdea eclipse

輸出日誌以下:

圖片

圖片

圖片

轉換完成後,對應項目中生成了eclipse工程中必須的.classpath與.project文件。

圖片

下面就能夠將相關文件進行導入eclipse的操做了。

填坑操做

一、相關關聯項目導入後,後看見相關依然報錯:

圖片

即:spring-cglib-repack-3.2.8.jar和spring-objenesis-repack-3.0.1.jar不存在

解決方法:

在spring-framework目錄下執行gradle cglibRepackJa和gradle objenesisRepackJar命令,會在Spring-frameworkspring-coreuildlibs目錄下生成相關jar。

圖片

圖片

圖片

二、可能代碼中發現以下錯誤:GroovyDynamicElementReader類不存在,是由於eclipse沒有安裝groovy插件。

圖片

在eclipse的 Help -> Install New Software 中,添加groovy的下載鏈接

http://dist.springsource.org/milestone/GRECLIPSE/e4.4/

而後全選後,開始下載,下載完後,重啓eclipse,而後clean一下項目就搞定了。

三、其餘

項目還須要跟jdk匹配,這點須要特別注意。

至此,將spring源碼下載到本地並適配到開發工具中了。

總結:Spring源碼分析文件相關內容會陸續更新,歡迎關注。

已上內容,純屬一家之言,因本人能力通常,見識有限,若有問題,請不吝指正,感謝。

相關文章
相關標籤/搜索