0.
0.0. 历史文章整理
玩转 Spring Boot 集成篇(MySQL、Druid、HikariCP)
玩转 Spring Boot 集成篇(MyBatis、JPA、事务支持)
玩转 Spring Boot 集成篇(Actuator、Spring Boot Admin)
玩转 Spring Boot 集成篇(@Scheduled、静态、动态定时任务)
玩转 Spring Boot 集成篇(定时任务框架Quartz)
0.1. 玩转 Spring Boot 原理篇
从今天开始,将开启玩转 Spring Boot 系列的原理篇的分享,后续将一起走进 Spring Boot 的源码,结合源码探究自动装配的原理、Spring Boot 的启动机制以及内嵌 Tomcat 的实现原理等。
工欲善其事必先利其器,考虑到方便后续学习源码,本次先把 Spring Boot 源码环境给搭建起来。
本次源码环境依赖
-
IntelliJ IDEA 2021.1.2 (Ultimate Edition)
-
JDK 1.8.0_251
-
Gradle 7.4
-
macOS
1. 环境依赖
Raise the minimum supported version of Gradle to 7.3
Spring Boot 2.6.3 版本将 Gradle 的最低支持版本提高到 7.3,本次 Gradle 版本采用 7.4。
1.1. 安装 Gradle
1.1.1. 下载安装包
https://gradle.org/next-steps/?version=7.4&format=bin
1.1.2. 配置环境变量
export GRADLE_HOME=/Users/tangbao/software/gradle-7.4
export PATH=$PATH:$GRADLE_HOME/bin
1.1.3. 验证环境
tangbao@tangbaodeMacBook-Pro ~ % gradle -v
------------------------------------------------------------
Gradle 7.4
------------------------------------------------------------
Build time: 2022-02-08 09:58:38 UTC
Revision: f0d9291c04b90b59445041eaa75b2ee744162586
Kotlin: 1.5.31
Groovy: 3.0.9
Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM: 1.8.0_251 (Oracle Corporation 25.251-b08)
OS: Mac OS X 10.15.2 x86_64
1.2. JDK
tangbao@tangbaodeMacBook-Pro ~ % java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
1.3. IDE 开发工具环境集成
1.3.1. IDEA 配置 Gradle
2. Spring Boot 源码
2.1. 下载源码
https://github.com/spring-projects/spring-boot/tree/v2.6.3
2.2. 修改 gradle 包路径
下载之后,解压缩进入源码目录。
打开 gradle/wrapper下的 gradle-wrapper.properties 文件,修改为本地 gradle 包的安装路径,修改如下。
3. IDEA 导入 Spring Boot 源码
在 IDEA 中选择 File --> Open ... 打开下载之后的 spring boot 2.6.3 目录下的 build.gradle 文件。
然后后面就交给 IDEA 了,建议站起来接杯水,抽根烟。
经过漫长的等待,等待编译完成,部分红色异常可以忽略,最终会看到 BUILD SUCCESSFUL in ?ms 的字样输出,说明编译完成。
4. 上手验证
4.1. 运行 Spring Boot 官方自带测试类
运行 spring-boot-smoke-tests 包下的任意测试类,例如运行 SampleSimpleApplic