Spring 5.1.x源码编译

前言

无论是在工作中还是在面试中,Spring是Java程序员一定会接触的框架,并且现在不是有说我们是基于Spring编程吗,所以Spring的重要性可想而知。那么阅读Spring源码,了解其底层知识,也就显得十分重要了,而阅读Spring源码的第一步就是编译Spring源码,下面文章便开始介绍如何进行Spring源码的编译。

1、预先准备

  1. JDK 1.8.0_212 (现在一般来说都是1.8的了吧,1.8以上应该没啥问题,但是我没试过)
  2. IntelliJ IDEA 2018.2.4 (版本高一些,应该问题不大,但是我没试过)
  3. Spring 5.1.x

就只需要这三个就够了,可能有读者会问Spring源码不是基于gradle的吗?怎么没有gradle,其实gradle我们使用IDEA自带的就可以了,不需要额外下载!

2、下载Spring源码

1、从github上下载Spring源码,下载地址 https://github.com/spring-projects/spring-framework
我这里下载的版本是5.1.x
下载没有VPN毕竟有些慢,我这里把压缩包直接提供给你们
链接:https://pan.baidu.com/s/1tZoLONJ0fxkW1YTIU5oubg
提取码:m3zo
在这里插入图片描述
2、按自己需求找一个文件夹,存放下载下来的Spring源码压缩包
在这里插入图片描述
我就放在D盘下的Spring文件夹下面了
在这里插入图片描述
直接解压,压缩包就没啥用了。
这在里应该是可以更换gradle的镜像源,反正我没换过,大家要是觉得慢可以更换试试。
在这里插入图片描述

3、IDEA导入Spring源码

1、首先需要对IDEA进行一些全局的设置
若是你已经打开了项目,那么点击这个按钮就可以进入全局设置
在这里插入图片描述
进入全局设置的 settings
在这里插入图片描述

在这里插入图片描述
2、随便进入一个项目,导入Spring源码
点击这个按钮
在这里插入图片描述
选择Spring的文件夹,点击ok
在这里插入图片描述
选择这个
在这里插入图片描述
设置完成,就点击Finish
在这里插入图片描述

4、IDEA构建Spring源码

进来后就是这个界面了,就是在开始构建Spring源码,这其中就会下载依赖,过程会比较慢,取决于你的网速,有可能几十分钟,有可能几小时,有可能一天多,,,,,
在这里插入图片描述
在这里插入图片描述
下载显示绿色就是下载成功,但是有时候有些依赖也会显示红色,表示下载失败,这是正常的,暂时不用管,等到整个项目构建完成后,点击gradle的刷新按钮,他就会继续下载那些失败了的依赖。若是你中途关闭idea,也是没问题的,重新打开后也会继续构建,若是不能继续构建,还是点击gradle的刷新按钮。
(注意:构建必须全部显示绿色,才是构建成功,构建完毕若是有红色那就点刷新,下载失败的依赖)
在这里插入图片描述
我这一次网速比较顺利,几小时就构建好了,并且没有报红
构建好的项目就长这个样子
在这里插入图片描述

5、IDEA编译Spring源码

1、在编译Spring源码之前,还需要一个步骤
点击这个按钮,就会下载一个jar包,若是没有这个jar包,后面运行程序可能会报错,这个步骤需要等待一会
在这里插入图片描述
这个样子就是build成功了在这里插入图片描述
2、编译spring-context模块
运行spring-context的测试类,运行后就会将里面的java文件编译成class文件
运行的过程中,报一些错是正常的,毕竟你也没有Spring作者的全部环境,让其运行完毕就好了
在这里插入图片描述
在这里插入图片描述
这就运行完毕了,报错不用管
在这里插入图片描述

6、创建自己的模块进行测试

1、创建自己的模块
在这里插入图片描述
选择Gradle,点击next
在这里插入图片描述
输入需要创建的包名
在这里插入图片描述
点击Finish
在这里插入图片描述
等待我们自己的包创建完毕
在这里插入图片描述
这就是创建完毕了,创建完毕IDEA会打开我们所有包
在这里插入图片描述
2、自己的模块引入spring-context模块
compile(project(":spring-context"))
在这里插入图片描述
3、编写测试代码
测试类结构
在这里插入图片描述
AppConfig.java

@Configurable
@ComponentScan("com.chenxi")
public class AppConfig {
}

UserService.java

@Component
public class UserService {
}

Test.java

public class Test {
	public static void main(String[] args) {
		AnnotationConfigApplicationContext ac = 
				new AnnotationConfigApplicationContext(AppConfig.class);

		UserService userService = ac.getBean(UserService.class);
		System.out.println(userService);
	}
}

运行结果(第一次运行会有点慢):
在这里插入图片描述

完美!!!!这样Spring源码就编译完成了!!!!!!!!!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值