概述
为了更好运行调试 Spring 整个执行流程,从 github 中 把 Spring 源码下载本地,并且用IDEA 运行调试和添加注释,方便以后回顾和学习,这篇文章总结一下 Spring5.x 源码环境搭建。
安装编译工具 Gradle
Spring 源码是通过 Gradle 管理工具进行管理的,而且每个版本对 Gradle 的版本要求是不一样的,此处编译的Spring源码为5.1.x,我使用的 Gradle 编译工具的版本为 gradle-5.6.4
参考我上一篇文章:IDEA 中配置 Gradle 和使用
从Github上下载Spring源码
下载 spring-framework5.1.x 源码
- 下载地址
- 下载安装包
IDEA 运行源码
解压后使用 IDEA 打开
导入步骤如下:file→new→Project form Existing Sources选择 Spring-framework-5.1x 项目
Gradle 导入
配置 gradle 环境
然后等着 build 完成即可
选择需要导入工程的模块,此处可以选择自己感兴趣的模块,或者全部导入。
编译完成,测试是否正确
写个测试类测试模块是否导入正确,在 spring-context 包的 test 包下创建两个测试类。如下:
TestConfig 类代码如下
@Configuration
public class TestConfig {
@Bean
public String name() {
return "Hello World Spring.";
}
}
TestMain 类代码如下
@Configuration
public class TestConfig {
@Bean
public String name() {
return "Hello World Spring.";
}
}
解决报错
然后运行,你会惊奇地发现,报错了,报的是符号找不到,类似于:internal.CustomizerRegistry找不到的异常。
因为 IDEA 导入Spring 源码时,会进行自动编译,所以要把 spring-core 把 build 文件清空一下就好,然后运行一下该模块下的test单元测试类,重新生成build 文件。
在 IDEA 控制台输入如下命令
gradle clean build
说明
- clean:是清空 spring-core build 文件
- build:从新编译 spring-core 构建build文件
gradle build 编译项目比较慢,请耐心等待….
经过大概4分钟左右,重新刷新idea,发现没有错误了,重新运行刚才的测试类,可以正常输出了。