一、源码准备
1、上GitHub全局搜索spring
2、下载5.0.x版本,最新是5.2.x
3、导入源码到idea
4、准备好本地gradle环境,spring-5.0.x依赖gradle-4.4.1,记得要选择本地gradle环境,默认从官网下载,会很慢,这里踩坑折腾了一晚上。
5、等待漫长的编译过程
参考:https://blog.csdn.net/u012211419/article/details/80445276
https://www.pianshen.com/article/85281142445/
二、使用
新建demo项目
错误一、
Error:(20, 50) java: 程序包org.springframework.objenesis.instantiator不存在
原因是Spring Framework为了避免与cglib和objenesis冲突,将cglib和objenesis相关的包重新repack到org.springframework.cglib
和org.springframework.objenesis
包中,这部分的代码没有包含到源码当中。
解决方法
找到这两个,双击执行即可。
参考:https://www.cnblogs.com/jssj/p/11631881.html
https://www.cnblogs.com/zhangfengxian/p/11072500.html
错误二
Error:(26, 38) java: 找不到符号
符号: 类 InstrumentationSavingAgent
位置: 程序包 org.springframework.instrument
解决办法:在自己测试项目的build.gradle里加上 compile(project(":spring-instrument"))
参考
https://www.codenong.com/cs106313378/
总结:
遇到问题根据抛出的错误信息去网上搜索解决办法,先Google在百度,Google搜出来的文章质量相对高点
源码分析可以参考这篇文章
https://blog.csdn.net/nuomizhende45/article/details/81158383
spring5.1编译的时候要报maven仓库全局换为阿里云仓库
参考
https://blog.csdn.net/the_one_and_only/article/details/108036651
而不是在代码里修改这块,没有用
另外编译过程中可能出现错误参考这篇文章
https://www.cnblogs.com/shianliang/p/11370471.html