一、源码准备

1、上GitHub全局搜索spring

spring5.0.x 源码编译过程及踩坑记录

2、下载5.0.x版本,最新是5.2.x

spring5.0.x 源码编译过程及踩坑记录

spring5.0.x 源码编译过程及踩坑记录

3、导入源码到idea

4、准备好本地gradle环境,spring-5.0.x依赖gradle-4.4.1,记得要选择本地gradle环境,默认从官网下载,会很慢,这里踩坑折腾了一晚上。

spring5.0.x 源码编译过程及踩坑记录

5、等待漫长的编译过程

spring5.0.x 源码编译过程及踩坑记录

参考:https://blog.csdn.net/u012211419/article/details/80445276

https://www..com/article/85281142445/

 

二、使用

新建demo项目

错误一、

Error:(20, 50) java: 程序包org.springframework.objenesis.instantiator不存在

原因是Spring Framework为了避免与cglib和objenesis冲突,将cglib和objenesis相关的包重新repack到org.springframework.cgliborg.springframework.objenesis包中,这部分的代码没有包含到源码当中。

解决方法

spring5.0.x 源码编译过程及踩坑记录

spring5.0.x 源码编译过程及踩坑记录

找到这两个,双击执行即可。

参考:https://www.cnblogs.com/jssj/p/11631881.html

https://www.cnblogs.com/zhangfengxian/p/11072500.html

错误二

Error:(26, 38) java: 找不到符号
  符号:   类 InstrumentationSavingAgent
  位置: 程序包 org.springframework.instrument

spring5.0.x 源码编译过程及踩坑记录

解决办法:在自己测试项目的build.gradle里加上 compile(project(":spring-instrument"))

参考

https://www.codenong.com/cs106313378/

总结:

遇到问题根据抛出的错误信息去网上搜索解决办法,先Google在百度,Google搜出来的文章质量相对高点

 

源码分析可以参考这篇文章

https://blog.csdn.net/nuomizhende45/article/details/81158383

相关文章:

  • 2021-06-15
  • 2021-08-29
  • 2021-04-07
  • 2021-12-08
  • 2021-11-24
  • 2021-10-18
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案