Bootstrap

玩转 Spring Boot 原理篇(源码环境搭建)

0. 7d5c51571451cf74a0d2ed6563c03054.png

0.0. 历史文章整理

玩转 Spring Boot 入门篇

玩转 Spring Boot 集成篇(MySQL、Druid、HikariCP)

玩转 Spring Boot 集成篇(MyBatis、JPA、事务支持)

玩转 Spring Boot 集成篇(Redis)

玩转 Spring Boot 集成篇(Actuator、Spring Boot Admin)

玩转 Spring Boot 集成篇(RabbitMQ)

玩转 Spring Boot 集成篇(@Scheduled、静态、动态定时任务)

玩转 Spring Boot 集成篇(任务动态管理代码篇)

玩转 Spring Boot 集成篇(定时任务框架Quartz)

0.1. 玩转 Spring Boot 原理篇

从今天开始,将开启玩转 Spring Boot 系列的原理篇的分享,后续将一起走进 Spring Boot 的源码,结合源码探究自动装配的原理、Spring Boot 的启动机制以及内嵌 Tomcat 的实现原理等。

工欲善其事必先利其器,考虑到方便后续学习源码,本次先把 Spring Boot 源码环境给搭建起来。

885a6070bb016b26cf4feacca15b5c96.png

本次源码环境依赖

  • 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

cd0a20eb2f46df2ffb72a4a2a832d29f.png

2. Spring Boot 源码

2.1. 下载源码

https://github.com/spring-projects/spring-boot/tree/v2.6.3

2.2. 修改 gradle 包路径

下载之后,解压缩进入源码目录。

7cbc65d6790b8395af18735fb4b00282.png

打开 gradle/wrapper下的 gradle-wrapper.properties 文件,修改为本地 gradle 包的安装路径,修改如下。

a8bde65117576b538df1e8b856e6890a.png

3. IDEA 导入 Spring Boot 源码

在 IDEA 中选择 File --> Open ... 打开下载之后的 spring boot 2.6.3 目录下的 build.gradle 文件。

effb749a5262f69f238796877ad2bd00.png

c5987fe0fb530462ed1819d9ab8705b4.png

然后后面就交给 IDEA 了,建议站起来接杯水,抽根烟。

ad72184ea56598aefb0437e3a7f7ec45.png

经过漫长的等待,等待编译完成,部分红色异常可以忽略,最终会看到 BUILD SUCCESSFUL in ?ms 的字样输出,说明编译完成

a2fdd9edc849b7e517fd2cc2ad03f4ce.png

4. 上手验证

4.1. 运行 Spring Boot 官方自带测试类

运行 spring-boot-smoke-tests 包下的任意测试类,例如运行 SampleSimpleApplic

;