Spring Boot版本新特性
本文结合官方文档与技术社区深度解析Spring Boot历代版本核心特性,按版本分类呈现关键演进路径。
# 1.0(2014 年 4 月)
官网链接:
主要特性:
- 自动配置(Auto-Configuration):基于类路径依赖自动配置Spring组件,减少XML配置。
- 起步依赖(Starters):通过
spring-boot-starter-*
简化依赖管理,例如spring-boot-starter-web
自动引入Web开发所需库。 - 嵌入式容器:内置Tomcat、Jetty和Undertow,支持
java -jar
直接运行。 - 外部化配置:支持
application.properties
和YAML文件,通过@Value
注解注入配置。 - Spring Boot CLI:命令行工具快速创建项目原型(如
spring init
)。
# 1.1
官网链接:
主要特性:
- 模板引擎支持:集成Thymeleaf、FreeMarker等模板引擎,简化视图层开发。
- Elasticsearch/Solr自动配置:提供开箱即用的搜索服务集成。
- Spring Data增强:支持MongoDB、Cassandra等NoSQL数据库的自动配置。
# 1.2
官网链接:
主要特性:
- Servlet 3.1支持:适配Tomcat 8和Jetty 9,支持异步I/O和WebSocket。
- Actuator增强:新增健康检查、环境信息等端点,提升运维能力。
- YAML配置支持:通过SnakeYAML库解析YAML文件,提高配置可读性。
# 1.3
官网链接:
主要特性:
- DevTools:支持热部署和自动重启,提升开发效率。
- 缓存抽象:整合Ehcache、Hazelcast等缓存框架,提供
@Cacheable
注解。 - 完全可执行Jar:支持通过
spring-boot-maven-plugin
生成独立运行的Jar包。
# 1.4
官网链接:
主要特性:
- RestTemplateBuilder:简化HTTP客户端配置,支持超时、拦截器等设置。
- Couchbase/Neo4j支持:新增对文档型和图数据库的自动配置。
- 启动失败分析:提供详细的启动错误诊断信息,帮助快速定位问题。
# 1.5
官网链接:
主要特性:
- Kotlin支持:官方支持Kotlin语言开发,提供DSL扩展。
- Kafka集成:通过
spring-boot-starter-kafka
简化消息队列开发。 - Actuator端点增强:新增
/heapdump
和/threaddump
端点,优化监控能力。
# 2.0(2018 年 3 月)
官网链接:
主要特性:
- 响应式编程(Spring WebFlux):基于Reactor实现非阻塞I/O,支持背压机制。
- Java 9支持:适配模块化JDK,优化资源管理。
- 配置属性验证:通过
@Validated
和JSR-303规范增强配置校验。 - HTTP/2支持:内置Tomcat和Undertow支持HTTP/2协议,提升性能。
# 2.1
官网链接:
主要特性:
- Java 11 支持:将 Java 11 作为 LTS 版本进行支持。
- Actuator 端点改进:例如健康检查端点分组(management.endpoint.health.group.*)。
- Kotlin协程支持:优化异步代码可读性,适配Kotlin 1.3+。
# 2.2
官网链接:
主要特性:
- 默认启用懒加载:通过 spring.main.lazy-initialization=true 可全局开启 Bean 懒加载,加快启动速度。
- RSocket 集成:提供 Reactive Streams 通信协议,增强微服务间交互。
- JUnit 5 支持:整合 JUnit Jupiter 作为默认测试框架。
- Java 13 支持
# 2.3
官网链接:
主要特性:
- 构建 OCI 镜像:通过 Cloud Native Buildpacks 直接使用 Maven/Gradle 插件 (./mvnw spring-boot:build-image) 构建 Docker 兼容的 OCI 镜像。
- 优雅停机支持:支持 Web 服务器(Tomcat, Jetty, Undertow, Netty)的优雅停机。
- Liveness/Readiness Probes:为 Kubernetes 环境提供开箱即用的健康探测端点。
- Java 14 支持
# 2.4
官网链接:
主要特性:
- 配置文件处理改进:引入 spring.config.import 机制,支持从外部文件或目录导入配置,取代 spring.profiles.include。
- 支持卷挂载的配置树 (Volume Mounted Config Trees):更好地适配 Kubernetes ConfigMaps 和 Secrets。
- Spring Native 实验性支持:适配 GraalVM 原生镜像,提升启动速度和内存效率。
- Java 15 支持
# 2.5
官网链接:
主要特性:
- 增强的 Docker 镜像构建:支持通过环境变量配置 Buildpacks 构建器和运行镜像。
- SQL 初始化脚本支持:提供 spring.sql.init.* 属性,更好地控制数据库初始化脚本的执行。
- 环境变量前缀支持:允许为特定属性源定义前缀。
- Java 16 支持
# 2.6
官网链接:
主要特性:
- 新的自动配置注册:引入 @AutoConfiguration 注解和 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件,替代旧的 spring.factories 方式。
- GraphQL 支持增强:提供了 spring-boot-starter-graphql,简化 GraphQL 应用开发。
- Podman 支持:为集成测试中的容器化依赖(如 Testcontainers)添加 Podman 支持。
# 2.7
官网链接:
主要特性:
- @AutoConfiguration注解:替代
@Configuration
,简化自动配置类开发。 - Flyway 8.5升级:支持数据库迁移的SQL格式化和校验。
- H2 2.1.120:修复安全漏洞,提升数据库性能。
# 3.0(2022 年 11 月)
官网链接:
主要特性:
- Jakarta EE 9迁移:全面替换
javax
命名空间为jakarta
,适配Tomcat 10+。 - AOT编译与Spring Native:通过提前编译生成无JVM依赖的可执行文件,启动时间缩短90%。
- Java 17强制要求:最低支持Java 17,移除对Java 8/11的支持。
- 响应式改进:WebFlux支持多部分表单的流式处理(
PartEvent
API)。
# 3.1
官网链接:
主要特性:
- Testcontainers集成:通过
@ServiceConnection
注解自动注入容器化服务(如Redis、MySQL)。 - Docker Compose支持:新增
spring-boot-docker-compose
模块,简化多容器部署。 - SSL配置统一:支持PEM格式证书,统一Web服务器和数据服务的SSL配置。
# 3.2
官网链接:
主要特性:
- 虚拟线程(JDK 21)支持:通过 spring.threads.virtual.enabled=true 配置,提升高并发场景吞吐量(需要 Java 21+)。
- RestClient 支持:引入同步的、类似 WebClient API 的 HTTP 客户端。
- SSL Bundle 热重载:支持监控和重新加载 SSL信任材料,无需重启应用。
- 初步的 CRaC 支持:为 Project CRaC (Coordinated Restore at Checkpoint) 提供实验性支持,实现快速启动。
- 支持 GraalVM Reachability Metadata Repository:简化原生镜像的元数据配置。
# 3.3
官网链接:
主要特性:
- CDS支持:Class Data Sharing(CDS)支持,通过共享类数据来减少应用程序的启动时间和内存消耗。
- 可观测性改进:增强了Micrometer的
@SpanTag
、InfoContributor
和Prometheus 1.x的支持,提供了更好的应用程序性能洞察。 - 安全性改进:引入了JwtAuthenticationConverter的自动配置,简化了JWT基于的身份验证配置。
- 服务连接支持:增加了对Apache ActiveMQ Artemis和LDAP的服务连接支持,扩展了与关键消息和目录服务的集成。
- Docker Compose增强:支持Bitnami容器镜像,简化了容器编排和部署。
- 虚拟线程支持:为WebSockets提供了虚拟线程支持,提高了实时应用的可扩展性。
- Base64资源支持:允许在属性和YAML文件中使用Base64资源,方便配置管理。
- SBOM Actuator Endpoint:提供了软件账单清单(SBOM)端点,以支持软件供应链安全。
- SSL SNI支持:增强了嵌入式Web服务器的SSL SNI支持,允许从单个IP地址提供多个SSL证书。
# 3.4
官网链接: Spring Boot 3.4.0 Available Now (opens new window)
主要特性:
- 开发体验改进:增强了开发体验,包括应用程序版本管理和虚拟线程改进。
- GraalVM本地镜像改进:提高了GraalVM本地镜像的构建速度,并支持使用Docker进行构建。
- RestClient正式支持:RestClient已达到GA阶段,作为RestTemplate的现代替代品。
- Prometheus Client 1.x支持:继续支持Prometheus 1.x客户端,提高可观测性。
- 结构化日志改进:增强了结构化日志功能,自动禁用Spring Boot启动横幅以减少日志杂乱。
- SBOM Actuator Endpoint:提供了SBOM端点以支持软件供应链安全。
- ApplicationContextRunner增强:测试ApplicationContext时提供了更多的自定义配置支持。
- Hibernate自动配置增强:支持Hibernate的本地属性,提高了配置灵活性。
- Actuator新功能:增强了Actuator API以提高应用程序可见性和管理能力。
# 总结
Spring Boot的演进始终围绕简化开发和技术趋势适配展开:
- 编程范式:从XML到注解,再到响应式和函数式编程,持续降低开发门槛。
- 生态整合:从Java EE到云原生,构建庞大技术生态(Spring Data、Spring Cloud等)。
- 性能优化:非阻塞I/O、背压机制和容器化支持,应对高并发场景。
如需详细文档,请访问Spring Boot官方文档 (opens new window)或GitHub版本日志 (opens new window)。
编辑 (opens new window)
上次更新: 2025/04/03