轩辕李的博客 轩辕李的博客
首页
  • Java
  • Spring
  • 其他语言
  • 工具
  • HTML&CSS
  • JavaScript
  • 分布式
  • 代码质量管理
  • 基础
  • 操作系统
  • 计算机网络
  • 编程范式
  • 安全
  • 中间件
  • 心得
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

轩辕李

勇猛精进,星辰大海
首页
  • Java
  • Spring
  • 其他语言
  • 工具
  • HTML&CSS
  • JavaScript
  • 分布式
  • 代码质量管理
  • 基础
  • 操作系统
  • 计算机网络
  • 编程范式
  • 安全
  • 中间件
  • 心得
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Java

  • Spring

    • 基础

    • 框架

    • Spring Boot

      • 开发你的第一个 Spring Boot 应用程序
      • Spring Boot开发初体验
      • 使用 Docker 部署 Spring Boot 应用
      • Spring Boot版本新特性
      • 集成

    • 其他语言

    • 工具

    • 后端
    • Spring
    • Spring Boot
    轩辕李
    2024-09-15
    目录

    Spring Boot版本新特性

    本文结合官方文档与技术社区深度解析Spring Boot历代版本核心特性,按版本分类呈现关键演进路径。

    # 1.0(2014 年 4 月)

    官网链接:

    • Spring Boot 1.0 Official Documentation (opens new window)

    主要特性:

    • 自动配置(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

    官网链接:

    • Spring Boot 1.1 Release Notes (opens new window)

    主要特性:

    • 模板引擎支持:集成Thymeleaf、FreeMarker、Groovy、Velocity等模板引擎,简化视图层开发。
    • 数据库迁移支持:新增Flyway和Liquibase自动配置,支持数据库版本控制和迁移。
    • 搜索引擎集成:提供Elasticsearch和Apache Solr的开箱即用自动配置。
    • 消息中间件支持:新增HornetQ JMS、Spring Integration、Spring Web Services等集成。
    • 健康检查增强:改进健康检查端点,支持Redis、MongoDB、RabbitMQ等服务状态监控。

    # 1.2

    官网链接:

    • Spring Boot 1.2 Release Notes (opens new window)

    主要特性:

    • Servlet 3.1支持:适配Tomcat 8和Jetty 9,支持异步I/O和WebSocket。
    • Actuator增强:新增健康检查、环境信息等端点,提升运维能力。
    • YAML配置支持:通过SnakeYAML库解析YAML文件,提高配置可读性。

    # 1.3

    官网链接:

    • Spring Boot 1.3 Release Notes (opens new window)

    主要特性:

    • DevTools:支持热部署和自动重启,提升开发效率。
    • 缓存抽象:整合Ehcache、Hazelcast等缓存框架,提供@Cacheable注解。
    • 完全可执行Jar:支持通过spring-boot-maven-plugin生成独立运行的Jar包。

    # 1.4

    官网链接:

    • Spring Boot 1.4 Release Notes (opens new window)

    主要特性:

    • 测试增强:引入@SpringBootTest、@MockBean和@SpyBean注解,简化测试配置和Mock对象创建。
    • 数据库支持扩展:新增Couchbase、Neo4J、Redis Spring Data repositories等NoSQL数据库的完整自动配置。
    • HTTP客户端改进:引入RestTemplateBuilder,支持超时、拦截器、错误处理等高级配置。
    • 启动失败分析:提供详细的启动错误诊断和分析,包括常见配置问题的解决建议。
    • 缓存支持:新增Caffeine缓存的自动配置支持。

    # 1.5(2017年1月)

    官网链接:

    • Spring Boot 1.5 Release Notes (opens new window)

    主要特性:

    • 动态日志级别管理:新增loggers端点,允许在运行时查看和更改应用程序日志级别,提供JMX和MVC端点。
    • Apache Kafka支持:通过spring-kafka项目提供Kafka自动配置支持,配置spring.kafka.*属性即可使用。
    • Actuator安全改进:"敏感"端点默认变为安全的(即使没有Spring Security依赖),访问端点所需的默认角色从ADMIN更改为ACTUATOR。
    • Cloud Foundry支持:Actuator模块增加对Cloud Foundry部署的额外支持,/cloudfoundryapplication路径为所有NamedMvcEndpoint bean提供替代的安全路由。
    • LDAP支持:提供任何兼容LDAP服务器的自动配置,以及对Unbounded内嵌内存LDAP服务器的支持。
    • 测试改进:新增@JdbcTest注解,支持在测试中排除自动配置。
    • 其他改进:第三方库升级(Spring Data Ingalls、Jetty 9.4、JooQ 3.9等),自定义fat jar布局,JmsTemplate自定义,Mockito 2.x兼容性。
    • 弃用和变化:移除HornetQ和Velocity支持,重命名一些starters,更新@ConfigurationProperties验证,弃用CRaSH shell支持。

    # 2.0(2018年3月)

    官网链接:

    • Spring Boot 2.0 Official Documentation (opens new window)

    主要特性:

    • Java要求提升:要求Java 8作为最低版本,兼容Java 9,更新API以利用Java 8特性(如默认方法、函数回调和javax.time等新API)。
    • 响应式编程支持:一流的响应式应用支持,引入Spring WebFlux和WebFlux.fn函数式编程模型,响应式支持扩展到Spring Data、Spring Security等组件,新增嵌入式Netty服务器支持。
    • Actuator重大改进:端点现在位于/actuator路径下,改进JSON负载格式,新的@Endpoint编程模型,与Micrometer深度集成进行指标监控和度量收集。
    • 数据层革新:切换到HikariCP作为默认连接池(替代Tomcat连接池),增强配置属性绑定机制,改进数据库初始化逻辑,添加对InfluxDB、LDAP等新数据源的支持。
    • 测试框架增强:新增@WebFluxTest注解支持响应式Web测试,改进切片测试(Slice Testing),添加ApplicationContextRunner工具类简化上下文测试。
    • HTTP/2全面支持:内置Tomcat、Undertow和Jetty均支持HTTP/2协议,显著提升网络性能(取决于Web服务器选择和应用环境)。
    • Kotlin语言支持:官方支持Kotlin 1.2.x,提供Kotlin专用的DSL和扩展函数。
    • 其他显著变化:Quartz调度器自动配置,改进JSON支持,Spring Boot的Gradle插件完全重写,大量第三方库版本升级。

    # 2.1

    官网链接:

    • Spring Boot 2.1 Release Notes (opens new window)

    主要特性:

    • Java 11长期支持:将Java 11作为LTS版本进行支持,同时保持对Java 8的兼容性。
    • Actuator端点增强:健康检查端点支持分组配置(management.endpoint.health.group.*),新增缓存和集成图端点,扩展指标覆盖范围。
    • Kotlin协程支持:优化异步代码可读性,完整适配Kotlin 1.3+,提供协程专用的Spring支持。
    • 性能优化:启动时间和内存使用优化,引入proxyBeanMethods=false配置。
    • OAuth2和安全增强:OAuth2 WebFlux支持,OAuth2资源服务器支持,改进安全配置。

    # 2.2

    官网链接:

    • Spring Boot 2.2 Release Notes (opens new window)

    主要特性:

    • 懒加载性能优化:通过spring.main.lazy-initialization=true全局开启Bean懒加载,显著加快应用启动速度。
    • RSocket响应式通信:提供Reactive Streams通信协议的完整集成,包括新的starter,增强微服务间高效交互。
    • JUnit 5默认支持:将JUnit Jupiter设为默认测试框架,移除JUnit 4的默认依赖。
    • 不可变配置属性:支持@ConfigurationProperties的不可变绑定,提升配置安全性。
    • 健康检查分组:支持健康指标分组,便于不同环境下的健康状态管理。
    • Java 13兼容性:完整支持Java 13的语言特性和JVM改进。

    # 2.3

    官网链接:

    • Spring Boot 2.3 Release Notes (opens new window)

    主要特性:

    • 云原生镜像构建:通过Cloud Native Buildpacks直接使用Maven/Gradle插件(./mvnw spring-boot:build-image)构建Docker兼容的OCI镜像,无需Dockerfile。
    • 分层JAR支持:默认启用分层JAR,优化Docker镜像缓存和构建效率。
    • 优雅停机增强:支持所有Web服务器(Tomcat、Jetty、Undertow、Netty)的优雅停机,确保请求完整处理。
    • Kubernetes就绪性探测:为Kubernetes环境提供开箱即用的Liveness和Readiness健康探测端点。
    • R2DBC响应式数据库:提供完整的R2DBC自动配置,支持响应式数据库操作。
    • Java 14支持:完整兼容Java 14的新特性和性能改进。

    # 2.4

    官网链接:

    • Spring Boot 2.4 Release Notes (opens new window)

    主要特性:

    • 配置导入机制:引入spring.config.import机制,支持从外部文件或目录导入配置,提供比spring.profiles.include更灵活的配置组织方式。
    • 卷挂载配置树:支持卷挂载的配置树(Volume Mounted Config Trees),完美适配Kubernetes ConfigMaps和Secrets的目录结构。
    • Spring Native实验支持:适配GraalVM原生镜像编译,实现毫秒级启动时间和极低内存消耗。
    • 分层JAR默认启用:分层JAR成为默认特性,显著优化容器化部署的构建效率。
    • Java 15全面支持:兼容Java 15的所有新特性,包括文本块、记录类等。

    # 2.5

    官网链接:

    • Spring Boot 2.5 Release Notes (opens new window)

    主要特性:

    • Docker镜像构建增强:支持通过环境变量配置Buildpacks构建器和运行镜像,提供更细粒度的镜像定制能力。
    • 统一SQL初始化:引入spring.sql.init.*属性族,统一控制数据库初始化脚本执行,支持R2DBC和JDBC。
    • 环境变量前缀配置:允许为特定属性源定义前缀,简化多应用环境下的配置管理。
    • HTTP/2 over TCP(h2c):所有嵌入式Web容器支持HTTP/2 over TCP,无需手动配置。
    • Java 16兼容性:完整支持Java 16的所有新特性和性能改进。

    # 2.6

    官网链接:

    • Spring Boot 2.6 Release Notes (opens new window)

    主要特性:

    • 自动配置机制现代化:引入@AutoConfiguration注解和META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,替代传统的spring.factories方式,提升配置加载性能。
    • GraphQL完整集成:提供spring-boot-starter-graphql,包含查询执行、异常处理、分页和排序等完整GraphQL开发支持。
    • 容器化工具扩展:为集成测试添加Podman支持,扩展Testcontainers的容器运行时选择。
    • 路径匹配策略改进:默认路径匹配从AntPathMatcher升级为PathPatternParser,提供更精确的URL匹配。
    • SameSite Cookie支持:增强Cookie安全性配置选项。

    # 2.7

    官网链接:

    • Spring Boot 2.7 Release Notes (opens new window)

    主要特性:

    • Spring GraphQL启动器:新增专用的Spring GraphQL starter,简化GraphQL应用开发和配置。
    • RabbitStreamTemplate支持:为RabbitMQ Streams提供专用的模板支持,优化流式消息处理。
    • Hazelcast @SpringAware:增强Hazelcast集成,支持@SpringAware注解进行Spring容器感知。
    • SSL PEM证书支持:Web服务器SSL配置支持PEM格式证书,简化证书管理。
    • Cache2k缓存支持:新增对Cache2k高性能缓存库的自动配置。
    • 依赖重大升级:Flyway 8.5(SQL格式化和校验)、H2 2.1(安全漏洞修复)、Elasticsearch 7.17等。

    # 3.0(2022 年 11 月)

    官网链接:

    • Spring Boot 3.0 Release Notes (opens new window)

    主要特性:

    • Jakarta EE 9全面迁移:完全替换javax命名空间为jakarta,适配Tomcat 10+、Jetty 11+等新一代Servlet容器。
    • AOT编译与GraalVM原生镜像:通过提前编译生成无JVM依赖的可执行文件,启动时间缩短90%,内存占用减少70%。
    • Java 17基线要求:最低支持Java 17,移除对Java 8/11的支持,充分利用Java 17的性能改进和语言特性。
    • 响应式Web增强:WebFlux支持多部分表单的流式处理(PartEvent API),支持大文件上传的流式处理。
    • 观测性升级:自动配置Micrometer Observation API、Micrometer Tracing,提供统一的观测和追踪能力。
    • 配置属性简化:简化@ConstructorBinding注解,支持记录(Record)类型的配置属性绑定。

    # 3.1

    官网链接:

    • Spring Boot 3.1 Release Notes (opens new window)

    主要特性:

    • Testcontainers深度集成:通过@ServiceConnection注解自动注入容器化服务(如Redis、MySQL、PostgreSQL等),支持开发时自动启动和配置。
    • Docker Compose原生支持:新增spring-boot-docker-compose模块,自动启动和停止compose定义的服务,提取连接详情进行自动配置。
    • SSL配置统一升级:支持PEM格式证书,统一Web服务器和数据服务的SSL配置,引入SSL Bundle概念简化证书管理。
    • Spring Authorization Server:新增Spring Authorization Server的自动配置和starter,简化OAuth2授权服务器搭建。
    • GraphQL增强:改进异常处理机制,新增分页和排序支持,增强模式类型生成。

    # 3.2

    官网链接:

    • Spring Boot 3.2 Release Notes (opens new window)

    主要特性:

    • 虚拟线程全面支持:通过spring.threads.virtual.enabled=true配置,在Servlet Web服务器、任务执行和调度中启用虚拟线程,显著提升高并发场景吞吐量(需要Java 21+)。
    • RestClient GA版本:引入同步的、类似WebClient API的HTTP客户端,作为RestTemplate的现代替代品。
    • JdbcClient自动配置:新增轻量级的JDBC客户端,简化数据库操作代码。
    • SSL Bundle热重载:支持监控和重新加载SSL信任材料,实现证书的无缝更新,无需重启应用。
    • Spring for Apache Pulsar:新增Apache Pulsar消息队列的完整集成支持。
    • JVM Checkpoint Restore(CRaC):为Project CRaC提供实验性支持,实现应用状态检查点和快速恢复。
    • 观测性增强:自动记录关联ID到日志,支持Micrometer注解(@Timed、@Counted、@Observed)。

    # 3.3

    官网链接:

    • Spring Boot 3.3.0 Available Now (opens new window)

    主要特性:

    • CDS(类数据共享)优化:支持创建CDS友好的布局,通过java -Djarmode=tools提取uber JAR,显著减少应用启动时间和内存消耗。
    • 观测性全面升级:增强Micrometer的@SpanTag注解支持,新增进程InfoContributor,升级到Prometheus 1.x客户端,为消息监听器和RabbitTemplate启用观测。
    • 安全配置简化:引入JwtAuthenticationConverter的自动配置,大幅简化JWT身份验证的配置复杂度。
    • 服务连接生态扩展:新增Apache ActiveMQ Artemis、官方ActiveMQ Classic镜像、LDAP以及Bitnami容器镜像的服务连接支持。
    • 虚拟线程WebSocket支持:为WebSocket提供虚拟线程支持,在高并发实时应用场景下显著提升可扩展性。
    • Base64资源加载:支持使用base64:前缀加载Base64编码的资源,特别适用于SSL证书等敏感配置的管理。
    • SBOM软件清单端点:新增软件物料清单(SBOM)Actuator端点,支持软件供应链安全审计和合规性检查。
    • SSL SNI多域名支持:增强嵌入式Web服务器的SSL SNI支持,允许单一IP地址配置多个SSL证书,支持多域名HTTPS服务。

    # 3.4

    官网链接: Spring Boot 3.4.0 Available Now (opens new window)

    主要特性:

    • 结构化日志重大升级:支持Elastic Common Schema (ECS)、Graylog Extended Log Format (GELF)和Logstash格式的结构化日志输出,机器可读性显著提升。
    • 应用分组管理:新增spring.application.group属性,支持应用程序分组管理,便于微服务环境下的统一监控。
    • 虚拟线程扩展支持:虚拟线程支持扩展到OtlpMeterRegistry、Undertow Web服务器等更多组件,全面提升并发性能。
    • 镜像构建优化:默认使用Paketo的tiny Java构建器,新增trustBuilder和imagePlatform选项,支持多平台OCI镜像构建。
    • HTTP客户端统一建造器:引入ClientHttpRequestFactoryBuilder,为RestClient和RestTemplate提供统一的HTTP客户端定制能力。
    • Bean验证增强:@Validated @ConfigurationProperties严格遵循Bean Validation规范,只有标注@Valid的字段才级联验证。
    • 容器化测试改进:Docker Compose支持多配置文件,Testcontainers新增Redis Stack、Hazelcast、OTLP日志等容器支持。
    • 默认优雅停机:Web服务器默认启用优雅停机,确保请求完整处理后再关闭应用。
    • AssertJ MockMvc集成:当AssertJ在类路径上时,自动提供MockMvcTester配置,简化Web层测试。

    # 总结

    Spring Boot的演进始终围绕简化开发和技术趋势适配展开:

    • 编程范式:从XML到注解,再到响应式和函数式编程,持续降低开发门槛。
    • 生态整合:从Java EE到云原生,构建庞大技术生态(Spring Data、Spring Cloud等)。
    • 性能优化:非阻塞I/O、背压机制和容器化支持,应对高并发场景。

    如需详细文档,请访问Spring Boot官方文档 (opens new window)或GitHub版本日志 (opens new window)。

    祝你变得更强!

    编辑 (opens new window)
    上次更新: 2025/08/16
    使用 Docker 部署 Spring Boot 应用
    Thymeleaf 与 Spring 框架的集成教程

    ← 使用 Docker 部署 Spring Boot 应用 Thymeleaf 与 Spring 框架的集成教程→

    最近更新
    01
    AI时代的编程心得
    09-11
    02
    Claude Code与Codex的协同工作
    09-01
    03
    Claude Code实战之供应商切换工具
    08-18
    更多文章>
    Theme by Vdoing | Copyright © 2018-2025 京ICP备2021021832号-2 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式