前言git
jdkmaster 分支需要 jdk 11
5.2.x 分支, jdk8 即可
gradle 6.5.1
idea 最新 (2020.2.3)
clone 原始碼
git clone
使用 idea 開啟
等待 idea 載入完成即可。
注: 也可以指定 clone 的分支
git clone -b 5.2.x
或者先 fork 到自己的倉庫,然後再 clone。
這裡我是 fork 到我的倉庫,然後再 clone 的。
當前 master 分支代表的版本為 5.3.2-snapshot。
其中usercomponent
新增了@component
註解, 程式正常執行則一切 ok。可以開始愉快的除錯**了。
編譯失敗
報錯如下:
fatal: not a git repository (or any of the parent directories): .git
build successful in 14s
build scan background action failed.
org.gradle.process.internal.execexception: process 'command 'git'' finished with non-zero exit value 128
... 其他省略
看意思是沒有 git 配置,那就新增上吧!
這時候想著新增 git
vcs
->enable version control integration...
-> 右上角reload all gradle projects
依然報錯
查詢問題
建議使用
$ git clone [email protected]:spring-projects/spring-framework.git
意思就是 zip 發行版主要是用來共享源**,但不一定用於構建它。
最後我選擇了使用 clone 的方式,直接 clone 下來,然後 build 通過。
缺少 cglib 和 objenesis 包
kotlin: warnings found and -weeror specified
沒有spring-cglib-repack
和spring-objenesis-repack
包
執行這兩個即可。
找不到包 jdk.jfr
import jdk.jfr.category;
import jdk.jfr.description;
import jdk.jfr.event;
import jdk.jfr.label;
jdk 公升級為 11。因為我本地使用的是 jdk8,發現報錯,jfr 包需要公升級 jdk 11 才有。
如果不生效,可以通過:
idea ->file
->project structure
->project
檢查下是否修改為 jdk 11
快捷鍵:⌘ + ;
相關資料
spring 倉庫:
spring 構建文件:/wiki/build-from-source
歷史文章
閱讀Spring原始碼
如何閱讀spring原始碼 學習原始碼的思路 為擴充套件 調優 掌握框架的工作流程和原理。提公升自己的程式設計能力 學習他人的設計模式和思路。掌握設計方法和分析思路。學習原始碼的方法 思路掌握問題域理論和核心概念 搞明白做什麼,如何做 從整體到部分 找到入口,先理清主幹流程,後細節 多思考,多分析 ...
Spring 原始碼閱讀(1)
這週在學習spring的原始碼,常常迷失在 森林中,因為英語水平不高,常常需要借助google翻譯幫忙解釋注釋,所以速度比較慢。下面是我模擬spring的解析xml,依賴注入的過程,比較簡略。node node nodes.item i if node instanceof element claz...
spring原始碼閱讀(1)
spring核心是ioc和aop,aop的底層是 實現。分為兩種 jdk動態 和cglib 區別 動態 被 物件是要實現乙個介面,類首先要拿到這個介面,來進行強制轉換,通過反射來生成 物件 public class meipo implements invocationhandler overrid...