Spring Boot, 说白了就是 Spring 的脚手架或者说是 Spring 的懒人包。
以前用 Spring 开发(SSM 时代),就像是自己买零件组装电脑:你需要自己去找各种jar 包,还要担心版本冲不冲突,然后写一大堆XML 配置文件,最后还得自己装个Tomcat 才能跑,非常繁琐,也就是大家常说的配置地狱。
而Spring Boot 就像是直接买一台品牌整机(比如 MacBook):
- 起步依赖(Starters):它把常用的零件都打包好了(比如 web 开发套餐),你引I入一个依赖,其他的它自动帮你配齐,而且版本都帮你管理好了,不会冲突。
- 自动配置(Auto-Configuration):这是它的核心。它遵循约定大于配置,比如你引I入了 MySQL 的包,它就猜到你要连数据库,自动帮你把连接池配好,除非你非要自己改。
- 内嵌服务器:它自带了 Tomcat,打成一个 Jar 包,一行java -jar 命令就能跑,不用再单独部署 Web 服务器了。
所以,Spring Boot 的本质就是:Spring + 自动化配置,目的是让我们只关注业务代码,而不是把时间浪费在配置上。

SpringBoot的核心注解
@SpringBootApplication 是 Spring Boot 的核心注解,它是以下三个注解的组合:
@Configuration表示该类是 Spring 配置类。@EnableAutoConfiguration:启用 Spring Boot 的自动配置功能。@ComponentScan:自动扫描当前包及其子包中带有Spring 注解的类(如@Controller、@Service等)。
@EnableAutoConfiguration是 Spring Boot 的自动配置核心注解,它会根据类路径中的依赖自动配置 Spring 应用中的各种组件。比如,如果你加了spring-boot-starter-web依赖,Spring Boot 就会自动配置嵌入式 Tomcat 服务器和 MVC 框架。
Spring Boot 的启动器 (Starters)
Spring Boot 有一堆 Starters(启动器),这些就是预设好的依赖包集合,涵盖了常见的 Spring 和第三方库。只需加一个启动器依赖,就能快速集成所需功能。
常用 starter
spring-boot-starter-web: 用于构建 Web 应用,包含 Spring MVC 和嵌入式 Tomcat。spring-boot-starter-data-jpa :集成 Spring Data JPA和Hibernate,数据库操作简单了。spring-boot-starter-security :集成 Spring Security,做身份验证和授权。spring-boot-starter-data-jpa: 集成 Spring Data JPA和Hibernate,数据库操作简单了。spring-boot-starter-security:集成 Spring Security, 做身份验证和授权。spring-boot-starter-thymeleaf:集成 Thymeleaf 模板引|擎,适合MVC视图渲染。
示例
implementation("org.springframework.boot:spring-boot-starter-web:4.0.1")
引入 spring-boot-starter-web 之后,Spring Boot 会自动配置 Web 服务器和 Spring MVC,我们只需编写业务逻辑即可。
Spring Boot的自动配置
Spring Boot 的自动配置机制依赖于 spring-boot-autoconfigure 模块,它会根据类路径中的依赖和配置文件自动配置相关的 Bean 和服务。
工作原理
Spring Boot 自动配置的核心原理是@EnableAutoConfiguration注解,他根据项目中的依赖和application.properties 或 application.yml文件中的配置,判断需要加载哪些Bean。
通过条件注解(如@Conditional0nClass、@ConditionalOnMissingBean等),Spring Boot 可以有选择地加载相关配置。
application.properties 文件自定义和覆盖默认配置。
server.port=8081 # 修改内置 Tomcat 的端口号
spring.datasource.url=jdbc:mysql://localhost:3306/mydb # 配置数据源
SpringBoot内置服务器
Spring Boot 内置了几种常见的 Web 服务器,如 Tomcat、Jetty 和 Undertow。默认情况下,Spring Boot 使用嵌入式 Tomcat 作为 Web 应用的服务器。
嵌入式 Tomcat配置
Spring Boot 默认使用嵌入式 Tomcat 服务器,开发者可以通过修改配置文件来调整 Tomcat 的属性,例如端口号、线程池大小等。
server.port=8080
server.tomcat.max-threads=200
切换到 Jetty 或 Undertow
开发者可以通过替换依赖来切换嵌入式服务器。
implementation("org.springframework.boot:spring-boot-starter-jetty:4.0.1")
- Tomcat:Apache 旗下的 “全能型选手”,是最主流的 Java Web 容器,主打稳定性和生态;
- Jetty:Eclipse 旗下的 “轻量灵活派”,天生为嵌入式和模块化设计;
- Undertow:JBoss(RedHat)开发的 “性能标杆”,主打高性能、低资源占用,是 WildFly 的默认容器。
| 特性 | Tomcat | Jetty | Undertow |
|---|---|---|---|
| 底层 IO 模型 | 传统 BIO(也支持 NIO/NIO2),混合架构 | 天生 NIO(非阻塞 IO),Handler 链模式 | 基于 NIO/XNIO(异步 IO),分层架构 |
| 设计核心 | 全功能、遵循规范、独立运行 | 轻量、模块化、可嵌入 | 高性能、非阻塞、低内存占用 |
| 核心架构 | Connector(连接器)+ Container(容器) | 模块化 Handler 链(按需组装) | IO |
Spring Boot Actuator
Spring Boot Actuator 是用来监控和管理应用的工具包,提供健康检查、指标、状态等功能。开发者用它能轻松盯紧应用的运行情况。
常见的 Actuator 端点
/actuator/health:检查应用的健康状态。/actuator/metrics:查看应用的性能指标。/actuator/info:显示应用的基本信息。
示例:在application.properties文件中启用Acutaor端点:
management.endpoints.web.exposure.include=*
访问 /actuator/health可以查看应用的健康状态信息:
{
"status": "up"
}