eclipse導入spring-framework ,閱讀源碼


Spring框架內容過多,幾十人甚至上百人的團隊一起完成的成果,工具,感謝這些優秀的程序員及團隊;說這個目的是對想閱讀Spring源碼的人提建議,找到合適自己的閱讀方法,全部看完很不容易;建議看核心部分代碼,學習設計模式,核心思想
2019年10月14號 GitHub顯示 Spring Framework 項目 contributors 為397 意思是說有近397人一起維護這個框架。當然,最開始的核心設計者是 Rod Johnson 慢慢演變到現在。 閱讀幾百名程序員維護的軟件框架,要從中學到東西,方法很重要,不要一開始就想着看完所有源代碼。

部分核心

spring-beans
spring-aop
spring-core
spring-context

本文主要內容

導入spring源碼過程,遇到的問題及解決方法

    $電腦環境
    #Eclipse Version: 2019-03 (4.11.0)
    #OS: Windows 10, v.10.0, x86_64 / win32
    #Java version: 1.8.0_191

源碼是版本spring-framework5.1.8
導入項目前需要安裝Gradle 並配置好PATH
源碼根目錄里面有一個將項目代碼導入eclipse的說明文件import-into-eclipse.md,可以參考這個文件去導入,能完成大部分導入工作。
另外項目明確說了 Eclipse需要安裝 AspectJ (AspectJ Development Tools) 和 Groovy 兩個插件 不然項目可能會報一些錯誤,BuildShip插件也需要,但是eclipse4版本好像內置此插件

步驟

下面介紹步驟和遇到的一下問題如何解決:

一 下載spring-framework源碼

  1. 直接從GitHub倉庫下載 https://github.com/spring-projects/spring-framework
  2. 訪問 spring官網 找到資源,zip下載或者git下載
    下載源碼后,記錄文件位置,如果是zip文件首先解壓

二 構建eclipse環境,使用eclipse導入源碼

獲取源代碼后,還不能直接導入eclipse,需要將代碼構建成eclipse可讀形式

  1. 在源碼目錄下面打開cmd 執行 gradlew :spring-oxm:compileTestJava 命令 (用powershell沒有用,這個應該是權限問題,懶得糾結,用cmd就好)

  2. 等待幾分鍾后,cmd窗口顯示完成 使用eclipse 將整個文件導入 File -> Import -> Existing Gradle Project -> 找到源碼目錄 點擊finish 開始導入

解決項目報錯問題

   中間遇到報錯問題,直接找到報錯位置,通常是依賴問題,某個模塊jar包依賴不存在,找不到class文件
  
此處這種報錯有兩種方法解決eclipse項目報錯問題

  1. jre 依賴報錯,一些java jre 的基礎java 文件找不到(String,com.sun**,Thread),eclipse 已經有了jdk1.8 按理說應該依賴沒問題,這里解決辦法:
    報錯的項目右鍵properties 找到build path -> remoce jre 先刪除JRE system Library -> apply and close 關閉 ;然后再打開 Java Build Path -> add library 找到jdk目錄,選擇自己的jdk1.8 -> apply and close 之后clean project 刷新一下能解決報錯

  2. CoroutinesUtils 報錯,找不到該類。 解決辦法:
    直接找到spring-framework-master\spring-core-coroutines\build\libs 下面的spring-core-coroutines-5.2.0.BUILD-SNAPSHOT.jar包,將這個jar包導入依賴
    報錯項目右鍵 properties -> java build path -> add jars -> 找到spring-core-coroutines-5.2.0.BUILD-SNAPSHOT.jar 位置,選擇確定, project clean 一下,這個CoroutinesUtils not found 的問題就解決了

然后就可以好好看spring 源碼了,以上本人親測,環境不同報錯可能也會有差異,不是絕對,可以參考。

spring 的核心包主要有
spring-core Spring 核心
spring-beans Spring 工廠類封裝,IOC實現
spring-context Spring 容器相關
spring-aop Spring 切面編程,代理相關

少數報錯並不影響閱讀學習核心代碼,了解框架設計思想


免責聲明!

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



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