大家好,又见面了,我是你们的朋友全栈君。
专题系列分类:玩转SpringBoot2.x系列教程
前言
你是否遇在面试中遇到如下提问:
面试官:了解过SpringBoot 的源码吗 ? 我:… 没有。 面试官:下一位。
当你从面试公司出来后,你心里默默发誓回去一定要看看 SpringBoot 的源码。但是当你在GitHub clone 源码到本地后,各种操作后编译失败,最终只能选择选择放弃。
本文通过 SpringBoot 的源码Jar 包方式进行查看其源码,并非直接编译SpringBoot 的源码。这样方式比较适合能力尚浅的小伙伴也可能快速查看 SpringBoot 源码。
通过本文你将学习到如下内容:
- 通过 IntelliJ IDEA 创建SpringBoot 项目。
- 通过 IntelliJ IDEA 自动下载源码 Jar 包方式查看源码。
- Debug SpringBoot 源码。
- 对源码添加自定义注释内容。
IDEA 部署SpringBoot 源码实操
搭建 SpringBoot 环境
第一步:创建 Project 并配置Maven 环境。
首先启动IDEA 点击Create New Project
选择 Empty Project 创建空的项目 (这里的Project 相当于Eclipse的工作空间)
设置 项目名称和项目路径,然后点击 Finish
创建成功后要配置我们自己本地安装 Maven 点击 File->Settings 如下图所示:
依次点击菜单选项: Build Execution Deployment – Build Tools – Maven 进行设置。
- Maven home directory : 选择自己本地 Maven 安装的目录
- User settings file: Maven 安装目录 settings.xml的路径
- Local repository: 这个会根据你选择的 Maven 安装目录 settings.xml的路径 自动生成。
第二步:搭建 SpringBoot 项目
首先点击File->New->Module
点击 Spring Initializr 然后在选择 JDK 版本在 Module SDK处,如果没有就点击右边的New 新增一个JDK。最后点击Next。
配置SpringBoot 项目的 Group、Artifact 等信息 ,然后点击Next。
选择 Web 模块然后点击Next。
配置 SpringBoot 项目的名称和路径地址,然后点击Finish。
将 .mvn 文件夹、mvnw文件、mvnw.cmd文件删除掉。
搜索SpringBoot 源码类并打断点调试
通过快捷键 Ctrl N 搜索 AbstractApplicationContext (Spring上下文核心处理类)
Springboot 默认会帮我们下载源码jar包
在refresh() 方法并在方法内打一个断点。
通过Debug的方式进行启动 具体操作如下图:
启动项目就走入到了在AbstractApplicationContext refresh() 断点上,如下图所示:
到这里调试 SpringBoot 源码操作完毕!
如果不能进入调试就进行如下图的操作:将如下图中org处勾选取消掉即可。
对源码添加自定义注释内容
如下图所示将鼠标悬浮在 AbstractApplicationContext 上显示出源码 jar 包具体路径。
进入本地安装Maven仓库并创建和源码jar包一样名称的文件夹, 然后将源码 jar包解压到文件夹中。
点击 File->Project Structure,进行修改 IDEA SpringBoot源码路径操作。
点击 Modules 然后选择 AbstractApplicationContex 所在的 Maven依赖,然后双击。
选中Sources 然后点击 号 将包含源码的文件夹中加入到Sources中
然后将源码的 jar包删除,如下图所示:
最后点击 OK 修改 IDEA SpringBoot源码路径操作完毕。
将鼠标悬浮在 AbstractApplicationContext 上查看此时源码的路径,如下图所示表示已经切换到源码文件夹下的路径了。
修改源码中的内容在我们的IDEA中。如下图所示:
在我们解压的源码文件夹AbstractApplicationContext .java 也同步修改了。
到这里源码自定义注释操作介绍完毕。
小结
是不是很简单呢?抓紧行动起来开始你的 SpringBoot 源码之旅吧!
参考文献
CSDN博主荒野雄兵:IDEA调试JDK源码的详细过程https://blog.csdn.net/daerzei/article/details/79717717
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143865.html原文链接:https://javaforall.cn