,大家肯定都debug过spring的源码,看看bean的创建过程,有个缺点不能自己随意的添加注释。,学习开源框架的源码时,搭建一个可以方便地进行调试的环境是非常重要的,不明白的地方也可以修改一下源码的东西!,看了好多文章,都是比较老的,现在跟着搭建是有问题的,踩了很多坑,最终完成搭建,整理一下思路还是比较清晰的,让我们一起来试试吧!,本次小编使用的Idea版本为2021.3,不太建议使用低版本的。,可以通过github或者gitee进行下载,也可以直接clone,文件比较大,这里建议直接下载好在Idea中打开即可!,由于Spring6需要JDK17,短时间也不会使用到,我们还是以Spring5的源码来学习哈,本地下载的Spring版本为:5.3.X
,Spring5.3.X下载地址:https://github.com/spring-projects/spring-framework/tree/5.3.x,解压完成:,,因为Spring官方已经把Gradle作为构建依赖的工具了,网上有好多都要下载Gradle进行配置的,其实Idea是会帮我们下载并应用的,我们只需要把源码导入静静的等待Idea表演即可!,这时我们把项目导入到Idea中:,,这里我们选中Gradle。,,点击相信项目:,,小编不是第一次加载,所以很快,第一次的时候已经下载过Gradle
了,专门导入一个新的让大家看一下:,,稍等三五分组就构建成功了!,,我们来说一下怎么知道下载那个版本的Gradle呢?,,如果想下载Gradle源码的可以去下载你想要的版本,这种带all的才是有源码的哈!,Gradle下载地址:https://services.gradle.org/distributions/,,现在已经构建完成了,我们现在需要新建一个模块,去使用我们刚刚构建的spring源码即可!,,我们新建一个Gradle模块:,,指定父模块和名称:,,我们可以查看一下目录下的settings.gradle文件是否新增成功,我们看到include ‘myspring’,说明我们已经新增模块成功!,,这里是个大坑,坑了我一天,所有的教程都是使用compile来导入依赖的,但是之前使用的Gradle版本都是7.0之前的,之前肯定没有问题,现在我们使用的是7.5.1。compile命令是被弃用的,不要问我咋知道的,我问的chatGPT,知道他不靠谱但是没有办法只能试一下,果然好用!!,「compile关键字用于导入依赖项的语法在Gradle 7.0及更早版本中是有效的。但是,从Gradle 7.0开始,官方推荐使用implementation代替compile」。,「自从Gradle 7.0起,compile被弃用,并建议使用implementation、api、compileOnly等配置选项代替,以提供更清晰的依赖管理和构建性能优化。」。,,我们添加一些主要的依赖,为了少些getset方法,我们在添加一下Lombok!,记得刷新依赖!,,我们看到正常输出Bean!,,如果使用中文就会乱码,我们改一下字符集还是不行,加上Gradle字符集还是不行!有知道的大佬欢迎分享一下哈~~,打了断点,spring内部是正确显示的:,,获取到的也是正确的,就是输出的时候乱码!,,这个对我们调试源码没有什么影响的!,我们按住Ctrl进入源码:,,我们可以看到已经是我们自己下载的源码了,这样就可以本地debug学习了哈!,,大家可以好好学习源码了哈!,我们看到在控制台输入一些报错信息,其实就是git的 问题:,zip 发行版旨在共享我们的源代码,但不一定用于构建它。构建的这一部分依赖于构建管道中存在的 git 文件。,解决方案就是clone项目,不要使用下载的方式,不过这个对我们调试代码没有任何影响哈!,Github官方回复地址:,通过搭建Spring源码Debug环境,我们能够更深入地了解Spring框架的运行机制,并通过实际调试经验加深对其内部工作原理的理解。这种深入学习可以帮助我们更好地应用和开发Spring框架,同时也提升了我们解决问题的能力。,我们看这种实时性的博客教程还是要看最新的,要不可能会有一些不适合新版的!,希望这篇博客对你有所帮助,祝你在学习Spring源码过程中取得成功!
文章版权声明
1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/29086.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别