⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 https://www.iocoder.cn/Spring-Boot/build-debugging-environment-2-6-0/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

友情提示:如果胖友对 Spring Boot 的使用不是很了解,可以看看艿艿写的 https://github.com/YunaiV/SpringBoot-Labs 系列文章,大概有 100+ 个 Spring Boot 使用案例。

今儿,我们来搭建一个 Spring Boot 调试环境,目标是:启动 Spring Boot,成功调试它的启动过程

视频可见 B 站:https://www.bilibili.com/video/BV1WA411P7Pz/

😝 艿艿比较腼腆,大家给个三连支持一下,感恩 1024~

1. 依赖工具

1.1 IDEA

当然是 Jetbrains 出品的 IDEA 工具,相信绝大多数胖友都使用的它。

艿艿使用的是 2020.3 版本,胖友尽量保证不低于该版本哈。

友情提示:如果不知道怎么激活 IDEA 的胖友,可以访问 《IDEA 激活指南》 地址,花 5 分钟学习!支持所有版本~

1.2 JDK

需要使用 JDK 编译 Spring Boot 的代码,这里艿艿使用的是 JDK 1.8 版本

$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

2. 源码拉取

使用 IDEA 从官方仓库 https://github.com/spring-projects/spring-boot 克隆项目。

友情提示:如果网络不是很好的胖友,可以选择和艿艿一样,使用 Gitee 提供的镜像仓库 https://gitee.com/mirrors/spring-boot

这里,我们使用的 Spring Boot 版本是 2.6.0-SNAPSHOT

友情提示:胖友可以考虑 Fork 下官方仓库,为什么呢?

既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。😜

3. 下载依赖

① 克隆完成 Spring Boot 项目之后,IDEA 会自动下载需要的 Gradle 工具。如下图所示:

下载 Gradle 工具

这里,我们使用的 Gradle 版本是 6.9

友情提示:由于是从国外的网址下载,所以需要耐心等待一会,艿艿花费了 2 分多钟。

② 下载完 Gradle 工具之后,IDEA 就会使用它自动下载相关的依赖库。如下图所示:

下载依赖

因为 Gradle 支持使用 Maven 依赖,所以我们可以使用阿里云的 Maven 镜像 https://maven.aliyun.com/nexus/content/groups/public/**。修改 build.gradle 文件,如下图所示:

下载依赖

效果非常不错,不过艿艿还是花了 20 分钟才下载完了依赖。主要原因是,Spring Boot 内置了 50+ 个 Starter 的实现,导致引入了非常多的依赖。

ps:如果中间下载失败,点击【绿色刷新】按钮,继续下载依赖即可。

4. 调试 Spring Boot 示例

依赖下载完后,我们通过调试 Spring Boot 提供的示例,了解 Spring Boot 的启动过程。在 spring-boot-smoke-tests 项目下,我们可以看到大量的示例,如下图所示:

Spring Boot 示例

这里,我们使用 spring-boot-smoke-test-tomcat 项目,最为熟悉的 Spring MVC + Tomcat 的组合。

① 在 SampleTomcatApplication 和 SpringApplication 分别打上断点,如下图所示:

打上断点

② Debug 运行 SampleTomcatApplication 类,首次构建会需要几秒钟,成功进入断点,可以愉快的调试 Spring Boot 启动过程。如下图所示:

调试 Spring Boot

5. 源码解析

艿艿在知识星球更新了 Spring Boot 源码解析系列,感兴趣的胖友可以看看哟。目录如下:

文章目录
  1. 1. 1. 依赖工具
    1. 1.1. 1.1 IDEA
    2. 1.2. 1.2 JDK
  2. 2. 2. 源码拉取
  3. 3. 3. 下载依赖
  4. 4. 4. 调试 Spring Boot 示例
  5. 5. 5. 源码解析