spring源碼(一) 環境搭建(各種坑的解決辦法)

  上次搭建spring源碼的環境還是兩年前,依稀記得那時候也是一頓折騰,奈何當時沒有記錄,導致兩年後的今天把坑重踩了一遍,還遇到了新的坑,真是欲哭無淚;爲了以後類似的事情不再發生,這次寫下這篇博文來必坑;

  一、源碼下載

  github直接搜索即可.地址已拼好並直接定位到我此次用到的5.2版本:https://github.com/spring-projects/spring-framework/tree/5.2.x,爲了後續看源碼寫註釋方便,這裏直接下載的zip包

  二、gradle下載

  spring源碼用的項目構建工具是gradle而不是maven,這裏直接寫必坑策略,就不掩飾錯誤了,據說spring5.2.x版本搭載的gradle版本不能低於5.6不能高於5.7,本人親測過gradle的3.2,5.1和7.0版本都不構建失敗,最後使用5.6.4版本成功構建,關於這塊之前也百度過,也瞄到過說更改spring源碼中gradle的版本的,由於我沒有實際操作,此處略去不管,最後,gradle下載地址:https://services.gradle.org/distributions/ 選擇對應-all版本下載即可;下載完成後別忘了配置環境變量

  三 導入idea

1.import project選擇解壓後的源碼目錄

 

 

 2.如圖示選擇後點擊next

 

 

 3.如圖示選擇gradle的安裝目錄,點擊finish等待gradle構建項目,此過程較長,我第一次導入大概花了近20分鐘

  

 

 

 

  如果按照上面提供的源碼和gradle版本導入構建的話大概率不會有什麼問題了,萬一有其他問題多半是gradle版本的問題了,百度一搬都能解決

  四、新建自己的測試module

  1.選中項目右鍵new-module,如圖

 

 

 直接next,自定義一下artifactid後一直無腦下一步即可,此時只需等待gradle去構建這個測試模塊,構建完後目錄齊全,如圖:

 

 

 爲方便閱讀和debug源碼,需要寫一個測試類來複現spring容器創建bean的過程,關鍵代碼如下:

/**
 * @Author dll
 * @create 2021/4/23 15:02
 * @describe
 */
public class Test01 {

    public static void main(String[] args) {
        ApplicationContext ac = new ClassPathXmlApplicationContext("test.xml");
        Object aaa = ac.getBean("aaa");
        System.out.println(aaa);
    }

}

xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="aaa" class="com.dll.beans.AAA">
        <property name="name" value="董琳琳"></property>
    </bean>
</beans>

接下來按道理就能直接能運行main方法了,但是我出現了一個無解的報錯:Error:Kotlin: warnings found and -Werror specified;尷尬的是這個報錯竟然百度不到,於是猜測是Kotlin版本問題,結果換了版本號還是不行,百度折騰半天靈光一現,將idea從2018.3.3換成2019.2.3,重複上述步驟重新導入構建,直接成功!也不知道是什麼原因,也不想去糾結了,哈哈,至此,環境構建完畢,接下來是枯燥的源碼閱讀之旅,希望能夠堅持吧

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章