最近使用idea导入Spring5.1.x的源码,特此记录如下
1. 下载源码并解压
https://github.com/spring-projects/spring-framework/tree/5.1.x
2. 准备环境
idea 2018.1.2
jdk 1.8
gradle 4.10 (需要使用4版本的gradle,5版本导入会报错)
3. 使用idea定位并打开源码,等待依赖导入完成
4. 编辑setting.gradle 注掉spring-aspects模块
5. 预编译oxm模块
gradlew :spring-oxm:compileTestJava
6. 运行内置测试类,进行依赖包生成
测试类为:
org.springframework.context.annotation.AnnotationConfigApplicationContextTests#getBeanByType
7. 添加个人测试模块
此处要注意,不能像maven模块一样,直接在setting.gradle中添加模块,然后把代码拷过来,配置依赖就能用了。如果这样做通过 compile(project(":spring-beans")) 等依赖不过来,不清楚是我的IDE版本原因还是其他原因
新建gradle module
添加依赖
编写测试代码
AnnotationConfigACTest.java
package site.uuyy;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class AnnotationConfigACTest {
public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext=
new AnnotationConfigApplicationContext(AppConfig.class);
DemoDao bean = applicationContext.getBean(DemoDao.class);
bean.query();
}
}
AppConfig.java
package site.uuyy;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("site.uuyy")
public class AppConfig {
}
DemoDao.java
package site.uuyy;
import org.springframework.stereotype.Component;
@Component
public class DemoDao {
public void query() {
System.out.println("hello spring code!");
}
}
8. 报错及问题
kotlin 报错,在setting-》plugins中更新kotlin即可
其他问题暂未发现,如果第6步运行的是其他测试类,个人的测试模块编写如果参考第7步的编写可能会出现问题