什么是 Spring Boot
Spring Boot 是基于 Spring Framework 的快速开发框架,目标是简化 Spring 应用的搭建和配置。它通过「约定优于配置」的理念,让开发者用最少配置就能跑起一个生产级应用。
传统 Spring 项目往往需要大量 XML 配置和繁琐的依赖管理,Spring Boot 把这一切收拢为:起步依赖(Starter)+ 自动装配(Auto Configuration)+ 内嵌服务器。
解决的问题
| 传统 Spring 痛点 | Spring Boot 方案 |
|---|---|
| 依赖版本冲突,手动管理 jar 包 | Starter 一站式引入,版本由官方 BOM 统一管理 |
| 大量 XML / JavaConfig 样板配置 | 自动装配,按需生效 |
| 需要外部 Tomcat/Jetty 部署 war 包 | 内嵌服务器,直接 java -jar 运行 |
| 缺少生产监控能力 | Actuator 内置健康检查与指标 |
核心特性
- 起步依赖(Starter):如
spring-boot-starter-web,一个依赖涵盖 Web 开发所需的全部组件。 - 自动装配:基于 classpath 中的依赖,自动注册常用 Bean,例如检测到 Spring MVC 就自动配置 DispatcherServlet。
- 内嵌服务器:默认内嵌 Tomcat,可切换 Jetty / Undertow,无需单独安装。
- 外部化配置:支持 properties、yml、环境变量、命令行参数等多种配置来源。
- Actuator:提供
/actuator/health、/actuator/metrics等生产监控端点。
与 Spring、Spring MVC 的关系
Spring Framework(核心:IoC / AOP)
└── Spring MVC(Web 模块)
└── Spring Boot(在二者之上做「自动化 + 工程化」封装)
Spring Boot 不是替代 Spring,而是让 Spring 更好用:底层依然是 IoC 容器、AOP、Spring MVC,只是配置和部署方式被大幅简化。
适用场景
- 快速构建 RESTful API 微服务
- 单体 Web 应用、后台管理系统
- 批处理任务、消息消费服务
- 需要快速验证原型的项目