一招教你构建Spring源码,带你开启探究Spring源码之旅

前言:

今天是2020年4月4日清明节,也是纪念抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的哀悼日。愿逝者安息,希望新冠肺炎疫情能早点结束,大家生活能恢复正常。

构建Spring源码:

一、前期准备:

1.安装配置Gradle:

参考此篇文章:https://www.cnblogs.com/NyanKoSenSei/p/11458953.html

验证命令:gradle -v

一招教你构建Spring源码,带你开启探究Spring源码之旅_第1张图片

2.下载Spring源码:

gitbub地址:https://github.com/spring-projects/spring-framework/releases/tag/v4.3.12.RELEASE

页面的最下方有源码,技巧:如果想下载其他版本的Spring源码,只要在git地址上修改版本号就可以,即修改/v4.3.12.RELEASE,下载源码还有其他方式,这里就不一一列举了。

一招教你构建Spring源码,带你开启探究Spring源码之旅_第2张图片

二、编译Spring源码: 

1.打开CMD命令窗口,进入Spring源码目录:

一招教你构建Spring源码,带你开启探究Spring源码之旅_第3张图片

2.执行 gradlew :spring-oxm:compileTestJava命令:

一招教你构建Spring源码,带你开启探究Spring源码之旅_第4张图片

一招教你构建Spring源码,带你开启探究Spring源码之旅_第5张图片

3.执行gradlew idea -x test命令:

一招教你构建Spring源码,带你开启探究Spring源码之旅_第6张图片

一招教你构建Spring源码,带你开启探究Spring源码之旅_第7张图片

 

提示:我在上周已经执行过上述操作,gradle已经下载过需要依赖的架包,所以执行很快。如果要是一次编译上述的操作大概需要40min左右。

三、Spring源码导入Idea:

1.进入源码目录,找到spring.ipr文件,使用idea打开此文件:

一招教你构建Spring源码,带你开启探究Spring源码之旅_第8张图片

2.导入Idea后: 

一招教你构建Spring源码,带你开启探究Spring源码之旅_第9张图片

Tips:切记千万不要点击“import Gradle project” ,因为你现在就是编译好的,如果你再点击一次导入,会出现“Two modules in a project cannot share the same content root”问题。

3.构建一个测试项目验证编译效果:

3.1 选择File==>选择New==>选择Modules

一招教你构建Spring源码,带你开启探究Spring源码之旅_第10张图片

3.2 点击Next 

一招教你构建Spring源码,带你开启探究Spring源码之旅_第11张图片

3.3 点击Next 

一招教你构建Spring源码,带你开启探究Spring源码之旅_第12张图片

3.4 点击Finish

一招教你构建Spring源码,带你开启探究Spring源码之旅_第13张图片

3.5 引入commons-logging架包,否则编译测试类会报错:

一招教你构建Spring源码,带你开启探究Spring源码之旅_第14张图片

3.6 选择File==>选择Project Structure==>选择Modules==>点击spring-hanxiaozhang-test项目==>选择Dependencies==>引入相关spring包:

一招教你构建Spring源码,带你开启探究Spring源码之旅_第15张图片

3.7 创建一个简单获取bean的测试:

一招教你构建Spring源码,带你开启探究Spring源码之旅_第16张图片

3.8 两个文件源码如下:

import org.springframework.beans.factory.annotation.Configurable;

/**
 * 〈一句话功能简述〉
* 〈〉 * * @author hanxinghua * @create 2020/4/4 * @since 1.0.0 */ @Configurable public class Bean { private String name="小韩同学"; public String getName() { return name; } public void setName(String name) { this.name = name; } }
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * 〈一句话功能简述〉
* 〈〉 * * @author hanxinghua * @create 2020/4/4 * @since 1.0.0 */ public class Test { public static void main(String[] args) { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(Bean.class); Bean bean = ac.getBean(Bean.class); System.out.println(bean.getName()); } }

3.9 并且我们在源码getBean中进行一些修改:

一招教你构建Spring源码,带你开启探究Spring源码之旅_第17张图片

 3.10 点击运行后的控制台:

一招教你构建Spring源码,带你开启探究Spring源码之旅_第18张图片

 

你可能感兴趣的:(Spring)