直入正题!!

1、下载spring的原码。

GitHub地址:GitHub - spring-projects/spring-framework: Spring Framework

spring Interceptor 源码 spring 源代码_spring源码分析

https://github.com/spring-projects/spring-framework

码云地址:https://gitee.com/MrZdp369/spring-framework

spring Interceptor 源码 spring 源代码_spring源码分析

https://gitee.com/MrZdp369/spring-framework

注意:码云地址是别人从GitHub拉取过来的仓库,如果不想要,我们自己也可以拉取一份到自己的码云仓库。

在码云拉取GitHub仓库代码:

登录进入码云,在右上角点击+图标。

spring Interceptor 源码 spring 源代码_ide_03

 选择“从GitHub/gitLab导入仓库” 。填写必要信息,点击导入即可。

spring Interceptor 源码 spring 源代码_源码分析_04

2、gradle环境设置

spring使用的并不是我们熟悉的maven,而是使用gradle。那么如何解决gradle环境问题呢?有两种方式,第一是本地安装gradle,第二种是使用默认。

本地安装方式:

本地安装方式一定要注意的是gradle的版本问题,那么我们怎么知道要安装什么版本呢?

打开我们拉取的spring源码,找到这个文件》。 

spring Interceptor 源码 spring 源代码_java_05

打开该文件,即可看到spring使用的gradle版本,安装与spring一样的版本即可。具体怎么安装,大家自行百度一下即可。

spring Interceptor 源码 spring 源代码_spring源码分析_06

使用默认: 

该方式是默认,什么都不用做,就是该方式。

如果gradle对你来说只是为了方便阅读spring源码,并没有其他用途,推荐使用该方式。

3、idea与gradle版本问题

本人开始搭建时,idea使用的是2018的版本,而spring使用的gradle的版本是6.8.3。 导入spring源码到idea的时候,出现了这个问题:

Cause: org/gradle/api/internal/plugins/DefaultConvention

后来才知道,是idea与gradle版本不兼容问题。于是尝试两种方式解决:

(1)修改spring的gradle版本,为什么首先尝试修改gradle版本呢,原因是因为我的idea用了很多年了,而且是永久破解的。如果更换idea版本,又得破解,麻烦!

这方式不行!

(2)更换idea版本,无奈之举,到idea官网下载了最新版2021安装。即可解决idea与gradle版本问题。

4、修改中央仓库

spring默认仓库是在国外,下载比较慢,所以一般修改成阿里云仓库。在源码中找到该文件

spring Interceptor 源码 spring 源代码_java_07

添加阿里云仓库地址:

spring Interceptor 源码 spring 源代码_java_08

 到此环境搭建的工作其实已经完成了。下面用idea导入spring源码。

5、idea导入spring源码,进行环境测试

导入工程后,idea会自动下载依赖,如果是使用默认gradle,则首先会下载gradle。整个过程全自动,无需理会。

下载依赖完毕后,我们开始编译spring工程,选中spring-framework,点击build,即可对spring源码进行编译

spring Interceptor 源码 spring 源代码_spring源码分析_09

 编译完成后,可看到每个模块下都多了个build目录,该目录就是编译后的文件目录,相当于maven编译后的target目录。

spring Interceptor 源码 spring 源代码_spring_10