简介
这一阵子在读spring源码,但是网上的文章,构建spring源码大都有问题,导致我构建源码的时候出现了很多问题。所以我自己重新构建了一下,所有的环境都是当前时间之前最新的。
环境
win10 + jdk1.8.0_211 + IntelliJ IDEA 2019.1.3
步骤
下载
在官网下载最新版的spring-framework-5.0.x源码(https://github.com/spring-projects/spring-framework/tree/5.0.x)
构建
- 进入源码目录,打开cmd窗口,输入
gradlew :spring-oxm:compileTestJava
网上很多文章都说这里要下载gradle,其实不用,输入这个指令之后会自己下载的(亲测),截图如下(中间可能会出错,十有八九是网络问题,建议挂vpn,或者多试几次):
- 打开Intellij IDEA,依次选择
File -> New -> Project from Existing Sources -> spring项目根目录 -> 选择 build.gradle
,然后如下图,一路ok即可。
选择gradle:
选择ok:
再选择ok就i可以了,之后,会加载比较久,因为第一次拉取jar包比较耗时,慢慢等待就是了,如果出错,还是那句话:中间可能会出错,十有八九是网络问题,建议挂vpn,或者多试几次
加载成功后的样子:
- 新建自己的module,建议新建gradle项目,过程如下。
到这里module就新建完成了。
5. 添加依赖
- 测试
编写Main程序,如下:
package org.springframework.demo;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class Main {
@Bean("person")
public Person person() {
return new Person("Hello");
}
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Main.class);
System.out.println((Person) context.getBean("person"));
}
}
class Person {
String name;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(String name) {
this.name = name;
}
}
- bug修改
点击运行后,项目会报错,具体内容如下:
原因是:spring-context
项目中引用了spring-instrument
项目,所以这里要修改module spring-context
下的build.gradle
。
- 运行成功,效果如下
然后就可以愉快的阅读spring源码了。
当然,大家也可以下载我之前编译的源码:https://github.com/scs9826/spring-5.x
版权声明:本文为qq_37978130原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。