一、编译环境
- spring5.0.x源码
- gradle4.9
- jdk1.8_151
- IntelliJ IDEA 2020.1
二、安装gradle
1、下载
下载地址:https://services.gradle.org/distributions/ 
2、配置
2.1、gradle下载后不需要安装,直接解压到磁盘

2.2、配置gradle环境变量
新建GRADLE_HOME变量,path中增加%GRADLE_HOME%/bin即可,如下图:  path环境: 
2.3、配置gradle默认的本地仓库
gradle和maven类似,工作时也需要一个本地仓库,管理工程jar包  path环境: 
2.4、检查是否安装成功

三、下载spring源码
1、进入github官网,直接搜索spring

2、选择spring官方源码

3、选择版本5.x.x

4、下载zip压缩包

5、解压

四、编译spring5源码
1、将项目导入idea中
此处不再赘述 
2、编译配置
(idea2020以上版本忽略此步,idea将自动帮助我们配置并编译构建)  注:因为其他项目需要依赖spring-core和spring-oxm,所以我们导入后需要先编译这两个包
当idea右边窗口的gradle有如下模块,则表示编译构建完成: 
五、测试spring是否编译成功
1、新建一个module
   完成以上步骤后,idea将帮我们自动编译构建,构建完成后将打开所有项目的目录: 
2、引入spring相关功能模块
打开刚刚新建module中的build.gradle文件,引入spring依赖 
3、编写测试代码
config模块
@ComponentScan("com.shadow")
public class AppConfig {
}
service模块
@Service
public class TestService {
}
测试
public class MyTest {
public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
TestService bean = applicationContext.getBean(TestService.class);
System.out.println("bean:::::"+bean);
}
}
出现下面结果则表示spring源码编译成功,可以为所欲为了 
|