spring-framework源码是发布在github上的
Github源码下载地址: https://github.com/spring-projects/spring-framework
首先需要gradle的版本, 在spring源码中的目录gradle -> wrapper -> gradle-wrapper.properties文件中可以看到当前源码对应的gradle版本
gradle下载地址
测试一下gradle环境变量是否配置成功, 打开cmd, 输入gradle -v命令,出现以下界面,表示配置成功
在将Spring源码导入Idea时, 为了加快gradle下载依赖包的效率, 在以下配置文件中添加配置
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
在Spring源码的目录上,有两个文件,import-into-eclipse.md 和import-into-idea.md 。因为是需要导入Idea开发工具中,所以就可以依照import-into-idea.md文件指示的步骤完成源码导入
从这个文件描述可知,在源码导入Idea之前,打开cmd,进入到源码的目录中, 先执行gradlew :spring-oxm:compileTestJava,
完成预编译
参见导入Idea手册: import-into-idea.md
Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
刚开始时,源码项目会去下载gradle所需要的jar包, 由于之前配置了阿里云,所以下载的效率大大提高
When prompted exclude the spring-aspects
module (or after the import via File-> Project Structure -> Modules)
右击项目名, 然后选择ignore Gradle Project选项来暂时屏蔽spring-aspects项目
配置好之后,再次build源码项目. 下面是成功的界面
在import-into-idea.md导入手册中有下面这一句话:
spring-core
and spring-oxm
should be pre-compiled due to repackaged dependencies.
所以按照顺序依次build
@Component
public class UserService {
public void user(){
System.out.println("user..........");
}
}
@Configuration
@ComponentScan("com.maker.aop")
public class SpringTest {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringTest.class);
UserService userService = context.getBean("userService", UserService.class);
userService.user();
}
}