1
Spring Boot 是什么:约定优于配置
What Is Spring Boot
用传统 Spring 开发一个 Web 项目,你要自己配 DispatcherServlet、视图解析器、视图解析器、数据源、事务管理器、日志……XML 配了一页又一页,光启动就折腾半天。Spring Boot 把这些"每个项目都要配一遍"的东西全按最佳实践预配置好,你只需要写业务代码。
论Spring Boot 的四大核心特性
① 自动配置(Auto-Configuration):类路径下有什么依赖,Spring Boot 就自动配什么 Bean。加了 spring-web 就自动配 DispatcherServlet;加了 spring-jdbc 就自动配 DataSource。
② 起步依赖(Starters):一个 spring-boot-starter-web 把 Spring MVC、内嵌 Tomcat、JSON 序列化全都拉进来了,不用你一个个找版本。
③ 内嵌服务器:Tomcat 直接打进 jar 包,java -jar app.jar 就跑,不用单独装 Tomcat。
④ Actuator:自带健康检查、指标、环境端点,应用上线后能直接看状态。
Spring Boot 和原生 Spring 什么关系
一句话:Spring Boot 没有发明新东西,它只是把 Spring 官方推荐的最佳实践打包成了开箱即用的starter。你写的 @RestController、@Transactional、@Autowired,全都是 Spring Framework 的注解,Boot 只是帮你自动配好了它们需要的环境。
| 维度 | 原生 Spring | Spring Boot |
|---|---|---|
| 配置方式 | XML 或 Java 配置类,手动写每个 Bean。 | 约定优于配置,starter 自动装。 |
| Web 服务器 | 打 war 包,部署到外部 Tomcat。 | 内嵌 Tomcat,打 jar 直接跑。 |
| 依赖管理 | 自己找兼容版本,经常冲突。 | spring-boot-dependencies 统一仲裁。 |
| 监控 | 自己接 JMX、写脚本。 | Actuator 内置端点。 |
| 起步时间 | 分钟级。 | 秒级。 |
Spring Boot 3.5.x 版本基线
| 项 | 要求 |
|---|---|
| JDK | 17 起步,推荐 21 LTS。Spring Boot 3.x 已经放弃 JDK 8/11。 |
| 底层框架 | Spring Framework 6.2.x,Jakarta EE 9+(包名 jakarta.*)。 |
| 内嵌服务器 | Tomcat 10.1、Jetty 12、Undertow 2.3。 |
| 构建工具 | Maven 3.6+ 或 Gradle 7.x+。 |