文档概述
什么是 Spring Boot?
Spring Boot 是 Spring 生态中的一个子项目,旨在简化 Spring 应用的初始搭建和开发过程。它通过自动配置和起步依赖两大核心机制,让开发者可以用最少的配置快速创建可独立运行的生产级应用。
核心目标
- 快速上手 — 提供开箱即用的默认配置
- 独立运行 — 内嵌 Servlet 容器(Tomcat / Jetty / Undertow),直接
java -jar启动 - 生产就绪 — 内置健康检查、指标监控、外部化配置等
- 无代码生成 — 不需要 XML 配置,不需要生成额外代码
核心特性
自动配置(Auto Configuration)
Spring Boot 根据 classpath 中的依赖自动推断并配置 Spring 应用。例如,添加 spring-boot-starter-web 后,会自动配置 Tomcat 和 Spring MVC。
java
@SpringBootApplication // 包含 @EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}起步依赖(Starters)
一组预定义的 Maven/Gradle 依赖描述,一键引入完整的功能栈:
| Starter | 功能 |
|---|---|
spring-boot-starter-web | Web 应用(Spring MVC + Tomcat) |
spring-boot-starter-data-jpa | JPA 数据库访问 |
spring-boot-starter-data-redis | Redis 访问 |
spring-boot-starter-security | Spring Security 安全 |
spring-boot-starter-test | 测试(JUnit + Mockito) |
外部化配置
支持从多种来源配置应用,优先级从高到低:
- 命令行参数(
--server.port=8081) - JNDI 属性
- 系统环境变量
application-{profile}.properties/application-{profile}.ymlapplication.properties/application.yml@PropertySource注解
内嵌容器
| 容器 | Servlet 版本 | 默认 |
|---|---|---|
| Tomcat | 4.0 | ✅ 默认 |
| Jetty | 4.0 | 需排除 Tomcat 后引入 |
| Undertow | 4.0 | 需排除 Tomcat 后引入 |
生产就绪功能
- Actuator — 提供
/health、/metrics、/info等监控端点 - 指标 — 集成 Micrometer,支持 Prometheus、Graphite 等
- 健康检查 — 数据库、Redis、磁盘等组件健康状态
- 外部化配置 — 不同环境切换配置(dev / test / prod)
Spring Boot 3.x 新特性
| 特性 | 说明 |
|---|---|
| Java 17+ 基线 | 最低要求 Java 17,充分利用 Records、Sealed Class 等 |
| Virtual Threads | 虚拟线程支持(Project Loom),大幅提升并发能力 |
| Docker Compose | 集成 Docker Compose,自动启动依赖服务 |
| AOT 编译 | AOT 提前编译,支持 GraalVM Native Image |
| CDS | Class Data Sharing,加快启动速度 |
| Observability | 统一的可观测性(Tracing / Metrics / Logging) |
适用场景
| 场景 | 适合 | 不适合 |
|---|---|---|
| REST API | ✅ 极速开发 | ❌ 需要深度定制容器的场景 |
| 微服务 | ✅ Spring Cloud 生态 | ❌ 需要完全控制类加载 |
| 批处理 | ✅ Spring Batch | |
| 实时消息 | ✅ Kafka / RabbitMQ |
参考文档
- 开始使用 — 创建第一个 Spring Boot 应用
- 使用 Spring Boot 进行开发 — 构建系统、代码结构、运行与打包
- Spring Boot 官方文档 — 最新版参考文档