轩辕李的博客 轩辕李的博客
首页
  • 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等模板引擎,简化视图层开发。
    • Elasticsearch/Solr自动配置:提供开箱即用的搜索服务集成。
    • Spring Data增强:支持MongoDB、Cassandra等NoSQL数据库的自动配置。

    # 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)

    主要特性:

    • RestTemplateBuilder:简化HTTP客户端配置,支持超时、拦截器等设置。
    • Couchbase/Neo4j支持:新增对文档型和图数据库的自动配置。
    • 启动失败分析:提供详细的启动错误诊断信息,帮助快速定位问题。

    # 1.5

    官网链接:

    • Spring Boot 1.5 Release Notes (opens new window)

    主要特性:

    • Kotlin支持:官方支持Kotlin语言开发,提供DSL扩展。
    • Kafka集成:通过spring-boot-starter-kafka简化消息队列开发。
    • Actuator端点增强:新增/heapdump和/threaddump端点,优化监控能力。

    # 2.0(2018 年 3 月)

    官网链接:

    • Spring Boot 2.0 Official Documentation (opens new window)

    主要特性:

    • 响应式编程(Spring WebFlux):基于Reactor实现非阻塞I/O,支持背压机制。
    • Java 9支持:适配模块化JDK,优化资源管理。
    • 配置属性验证:通过@Validated和JSR-303规范增强配置校验。
    • HTTP/2支持:内置Tomcat和Undertow支持HTTP/2协议,提升性能。

    # 2.1

    官网链接:

    • Spring Boot 2.1 Release Notes (opens new window)

    主要特性:

    • Java 11 支持:将 Java 11 作为 LTS 版本进行支持。
    • Actuator 端点改进:例如健康检查端点分组(management.endpoint.health.group.*)。
    • Kotlin协程支持:优化异步代码可读性,适配Kotlin 1.3+。

    # 2.2

    官网链接:

    • Spring Boot 2.2 Release Notes (opens new window)

    主要特性:

    • 默认启用懒加载:通过 spring.main.lazy-initialization=true 可全局开启 Bean 懒加载,加快启动速度。
    • RSocket 集成:提供 Reactive Streams 通信协议,增强微服务间交互。
    • JUnit 5 支持:整合 JUnit Jupiter 作为默认测试框架。
    • Java 13 支持

    # 2.3

    官网链接:

    • Spring Boot 2.3 Release Notes (opens new window)

    主要特性:

    • 构建 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 Boot 2.4 Release Notes (opens new window)

    主要特性:

    • 配置文件处理改进:引入 spring.config.import 机制,支持从外部文件或目录导入配置,取代 spring.profiles.include。
    • 支持卷挂载的配置树 (Volume Mounted Config Trees):更好地适配 Kubernetes ConfigMaps 和 Secrets。
    • Spring Native 实验性支持:适配 GraalVM 原生镜像,提升启动速度和内存效率。
    • Java 15 支持

    # 2.5

    官网链接:

    • Spring Boot 2.5 Release Notes (opens new window)

    主要特性:

    • 增强的 Docker 镜像构建:支持通过环境变量配置 Buildpacks 构建器和运行镜像。
    • SQL 初始化脚本支持:提供 spring.sql.init.* 属性,更好地控制数据库初始化脚本的执行。
    • 环境变量前缀支持:允许为特定属性源定义前缀。
    • 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)添加 Podman 支持。

    # 2.7

    官网链接:

    • Spring Boot 2.7 Release Notes (opens new window)

    主要特性:

    • @AutoConfiguration注解:替代@Configuration,简化自动配置类开发。
    • Flyway 8.5升级:支持数据库迁移的SQL格式化和校验。
    • H2 2.1.120:修复安全漏洞,提升数据库性能。

    # 3.0(2022 年 11 月)

    官网链接:

    • Spring Boot 3.0 Release Notes (opens new window)

    主要特性:

    • Jakarta EE 9迁移:全面替换javax命名空间为jakarta,适配Tomcat 10+。
    • AOT编译与Spring Native:通过提前编译生成无JVM依赖的可执行文件,启动时间缩短90%。
    • Java 17强制要求:最低支持Java 17,移除对Java 8/11的支持。
    • 响应式改进:WebFlux支持多部分表单的流式处理(PartEvent API)。

    # 3.1

    官网链接:

    • Spring Boot 3.1 Release Notes (opens new window)

    主要特性:

    • Testcontainers集成:通过@ServiceConnection注解自动注入容器化服务(如Redis、MySQL)。
    • Docker Compose支持:新增spring-boot-docker-compose模块,简化多容器部署。
    • SSL配置统一:支持PEM格式证书,统一Web服务器和数据服务的SSL配置。

    # 3.2

    官网链接:

    • Spring Boot 3.2 Release Notes (opens new window)

    主要特性:

    • 虚拟线程(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

    官网链接:

    • Spring Boot 3.3.0 Available Now (opens new window)

    主要特性:

    • 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
    使用 Docker 部署 Spring Boot 应用
    Thymeleaf 与 Spring 框架的集成教程

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

    最近更新
    01
    Spring框架版本新特性
    09-01
    02
    Spring Boot开发初体验
    08-15
    03
    开发你的第一个 Spring Boot 应用程序
    08-11
    更多文章>
    Theme by Vdoing | Copyright © 2018-2025 京ICP备2021021832号-2 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式