缘起
最近在看Spring的源码,笔者准备写一个专栏,用于记录关于spring源码阅读过程中的心得和体会。
废话补多少,看源码之前首先是要搭建源码的运行环境,搭建运行环境大概分为以下几步。
步骤
- 安装git
- 安装Gradle
- 下载源码
- 导入到开发环境中
下面一步步介绍
安装GIT
spring源码现在是放在git hub中,故我们需要先安装Git,在windows下安装Git很简单,读者可以自行百度。
安装好了后可以采用Git命令 git clone https://github.com/spring-projects/spring-framework.git
的方式
如果不装git也是可以的,直接去git hub上下载源码便是。
spring源码在git hub上的地址:https://github.com/spring-projects/spring-framework
安装Gradle
由于spring是基于Gradle而非maven开发的,故还需要先安装Gradle.
配置Gradle环境(MAC环境,windows自行百度)
进入到用户所在根目录,执行如下
vi .bash_profile
GRADLE_HOME=/Users/zhongguangxi/gradle-6.6.1
PATH=$PATH:$GRADLE_HOME/bin
export GRADLE_HOME GRADLE_USER_HOME PATH
source .bash_profile
把Spring源码导入到开发环境中(以Idea为例)
导入之后需要设置本地gradle路径
设置jdk
确定之后gradle会开始build项目,这一步会耗时比较长,请耐心等待,中间可能会报错
Could not get unknown property ‘classesDir’ for main classes of type org.gradle.api.internal.tasks.DefaultSourceSetOutput.
如果报这个错,需要注意gradle的版本。截止2020年9月6日,spring所用gradle版本为6.6.1,这个版本的spring下载,为了防止后续spring版本变动,我自己fork了一份当前版本的
https://gitee.com/nuoqian1/Spring-Framework.git
再次强调,Gradle的版本一定要与spring源码中要求的一致,不然会报各种各样奇奇怪怪的错,我们可以在gradle-wrapper.properties
文件中查看当前要求的gradle版本
开始调试代码
我们先new一个Module
选择Gradle
输入Module的名字
完成后如下所示
我们在这个test项目里面引入spring-context用于调试
compile project(":spring-context")
接下来可以编写测试代码了
在test项目的resources目录下新建配置文件config.xml,代码如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="testIoc" class="com.test.TestBean"></bean>
</beans>
新建TestBean
public class TestBean {
public void helloSpring(){
System.out.println("Hello Spring");
}
}
新建测试类TestIOC
public class TestIOC {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("config.xml");
TestBean testBean = context.getBean(TestBean.class);
testBean.helloSpring();
}
}
运行TestIOC的main方法,即可看到输出
> Task :test:TestIOC.main()
Hello Spring
到此,说明spring源码阅读环境搭建成功
总结
spring源码的阅读环境搭建比较简单,首先是要安装gradle,然后是需要去下载spring的源码。
需要注意的是,gradle和jdk的版本问题,版本如果不对应spring,会导致构建失败