Spring源码导入步骤
Spring源码导入步骤
准备开始学习
Spring
源码,后面会发布Spring-AOP源码
、spring-tx事务源码
相关文章。这里先把自己学的源码时候,本地IDE导入源码的过程已经踩过的坑放在这里。
一、到github下载code
一定要注意spring版本对应的JDK版本
我这里自己用过spring 5.0.x 对应JDK 8,spring 5.3.x对应JDK 11
如果github.com下载过慢,可以使用gitee 把 github仓库同步过来,再下载。(可以在网上百度一下同步步骤,下面随便贴两张图)
可以直接到本人gitee :gitee.com/old_yogurt/… 下面拉取 5.0.x版本的源码,里面有本人学习源码是做的一些中文注释。
下载之后,看目录结构,看import-into-idea.md文档:
1、先在目录结构中执行 ./gradlew :spring-oxm:compileTestJava
2、第一步如果成功,第二步导入不要着急,先打开 父级的 setting.gradle 和 builder.gradle,添加阿里云仓库(要不然拉依赖比较慢)
setting.gradle
如果有这个repositories节点,就加上,如果没有整个pluginManagement没有,可以把整个pluginManagement节点加上,也可整个不加,因为下面还有build.gradle
pluginManagement {
repositories {
maven { url 'https://maven.aliyun.com/repository/gradle-plugin/'} //这个有点主要
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter/'}
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google/' }
gradlePluginPortal()
maven { url 'https://repo.spring.io/plugins-release' }
}
}
build.gradle
第一处:
maven { url "https://maven.aliyun.com/repository/public" }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
第二处:
二、添加 自定义的 项目引用源码
可以看看 本人gitee:gitee.com/old_yogurt/… 5.0.x版本下面的 a-spring-test-pro
的子项目就是本人测试源码时候写的demo;
构建Module:next
用gradle: next
这里 父级一定要选spring: next (只有这样才可以将 我们创建的子项目添加到spring工厂中)
在gradle中引入我们想要测试的模块:
这里就完成了
三、Spring 源码使用 spring-aspects AOP遇到的问题
如果我们想要测试Spring AOP,那么我们需要引用 spring-aspects 模块,但是我们aspects有需要 AspectJ 编译器工具,需要我们去下载对应的aspectstool.jar工具+idea配置才能使用。
需要注意 aspectstool.jar 也需要对应JDK的版本 ,我这里下载的是 1.9.2,对应JDK 8
也可以查看 spring-aspects 模块的 .gradle查看对应的版本。
1、下载 AspectJ编译器
下载 AspectJ编译器:www.eclipse.org/aspectj/dow…
先别点 download,先选择我们国内的镜像源,要不然下载很慢
先选择我们国内的镜像源
下载好之后,用cmd到我们下面的目录执行:java -jar aspectj-1.9.2.jar ;选择对应的JDK版本,进行安装即可。
安装好的目录:
2、IDE配置
下载 AspectJ Plugin
配置:
项目配置:
将 spring-aop_main 和 spring-aspectjs_main 两个模块添加 AspectJ,到Project Structure,右键main → add → AspectJ;在重新build工程即可。
如果想要AspectJ是否配置成功,可以自己写个demo测试,或者查看 本人gitee:gitee.com/old_yogurt/… 5.0.x版本下面的 a-spring-test-pro
的子项目的aop包下的AOP测试。
转载自:https://juejin.cn/post/7368758932154122292