springboot3.5比2.x做了哪儿些提升

先说结论:Spring Boot 3.5 相对 2.x,不是小版本升级,而是一整代(3.0 → 3.5)的现代化改造。3.5 是 3.x 的最后一个 minor,在 2.x 基础上叠加了基础栈换代 + 性能 + 开发体验 + 可观测性 + 运维能力。


一、必须先接受的「代际变化」(2.x → 3.x 基础)

这些从 3.0 就定了,3.5 全部继承:

维度 Spring Boot 2.x Spring Boot 3.5
最低 Java Java 8 / 11 Java 17(支持到 Java 25)
EE 规范 javax.* jakarta.*(Jakarta EE 9/10)
Spring Framework 5.x 6.2.x
Spring Security 5.x(WebSecurityConfigurerAdapter 6.x(组件化 / Lambda DSL)
Hibernate 5.x 6.x(映射、方言、行为有变化)
Servlet Servlet 4 Servlet 6

迁移时最常见的工作量:

  • 全项目 javax.servletjakarta.servletjavax.persistencejakarta.persistence
  • Security 配置从继承 WebSecurityConfigurerAdapter 改为 @Bean SecurityFilterChain
  • 第三方库要确认是否支持 Jakarta
  • 建议路径:2.7.x → 3.0 → 3.1 → ... → 3.5,不要一步跳

二、3.x 各版本累积的核心提升(相对 2.x)

1. 性能与运行时(3.0 / 3.2)

  • GraalVM Native Image:AOT 编译,启动可从秒级降到百毫秒级,内存占用明显下降

  • 虚拟线程(Virtual Threads):3.2 起一行配置即可: spring.threads.virtual.enabled=true

    高并发 I/O 场景下,比 2.x 传统线程模型更能扛

  • CDS(Class Data Sharing):多实例共享类元数据,启动更快

  • SSL 证书热重载:证书轮换不必重启应用

2. 开发体验(3.0 / 3.1 / 3.2)

  • 声明式 HTTP 客户端(@HttpExchange):比 2.x 的 RestTemplate / 自建 Feign 更轻
  • RestClient(3.2):RestTemplate 的现代替代,流式 API、同步调用更顺手
  • JdbcClient(3.2):比 JdbcTemplate 更简洁的链式数据库访问
  • Docker Compose 集成(3.1):自动识别 compose.yaml,本地依赖一键启停
  • Testcontainers @ServiceConnection(3.1):测试里少写 @DynamicPropertySource 样板代码
  • RFC 7807 Problem Details:REST 错误响应标准化

3. 可观测性与运维(3.0 / 3.3 / 3.4 / 3.5)

  • Micrometer Observation API:指标、链路、日志统一接入
  • SBOM Actuator 端点(3.3):输出软件物料清单,方便安全审计
  • 结构化日志(3.4):原生 JSON/ECS 格式,对接 ELK、Loki 更顺
  • OpenTelemetry 增强(3.5):支持 OTEL_RESOURCE_ATTRIBUTESOTEL_SERVICE_NAME
  • SSL 证书监控指标(3.5):ssl.chainsssl.chain.expiry,证书过期可告警

4. 安全与云原生(3.1 / 3.3 / 3.4)

  • Spring Authorization Server 生产可用
  • Service Connections:Redis、Kafka、MongoDB 等测试/本地连接自动配置
  • Base64 内联资源配置:证书、密钥可直接写在 yaml 里
  • @Fallback 注解(3.4):主 Bean 不可用时的优雅降级

三、Spring Boot 3.5 特有的提升(在 3.4 之上)

3.5(2025 年 5 月发布)偏 运维打磨 和 配置完善,官方亮点包括:

特性 说明
@ServletRegistration / @FilterRegistration 注解方式注册 Servlet/Filter,替代部分 *RegistrationBean
Bean 后台初始化 自动配置 bootstrapExecutor,加快启动
spring.task.execution.mode=force 即使已有自定义 Executor,也可强制用统一 AsyncTaskExecutor
WebClient 全局配置属性 超时、重定向等可用配置项,与阻塞客户端对齐
环境变量批量导入配置 spring.config.import=env:MY_CONFIGURATION 一次导入多行配置
结构化日志堆栈定制 logging.structured.json.stacktrace.* 控制堆栈输出
Service Connection SSL Kafka、Redis、MongoDB 等客户端 SSL 连接支持
Quartz Actuator 触发任务 POST /actuator/quartz/jobs/{group}/{job} 远程触发
OAuth2 自动配置更细粒度 Servlet / Reactive 场景拆分更清楚
云原生构建改进 Buildpacks 默认切到 Ubuntu Noble;Maven/Gradle 插件支持 Docker config.json 认证

3.5 也有一些 破坏性收紧(从 3.4 升级时要注意):

  • heapdump 端点默认 access=NONE,要显式开放
  • .enabled 配置属性只接受 true/false
  • Profile 命名规则更严格
  • 自动配置的 TaskExecutor 只保留 applicationTaskExecutor 这个名字

四、和 2.x 比,你会「体感」最明显的几点

  1. 必须 Java 17+,能用 Record、Pattern Matching、Text Blocks 等现代语法
  2. 迁移成本高:javaxjakarta、Security、Hibernate 6 都要动
  3. 性能更好:虚拟线程、Native Image、CDS
  4. 本地开发更顺:Docker Compose、Testcontainers 深度集成
  5. 上云/运维更成熟:结构化日志、SBOM、SSL 监控、OpenTelemetry
  6. API 更现代:RestClient、JdbcClient、声明式 HTTP Client

五、升级建议(务实版)

2.x(非 2.7)→ 2.7.x → 3.0 → 3.1 → 3.2 → 3.3 → 3.4 → 3.5

  • 在 2.7 清掉所有 deprecation 警告
  • 用 OpenRewrite 或 IDE 批量做 javaxjakarta
  • spring-boot-properties-migrator 辅助发现废弃配置
  • 若还在 2.x,优先评估能否上 Java 17,这是硬门槛

补充:3.5 的 OSS 支持到 2026 年 6 月;长期维护可能要规划 Spring Boot 4.0(需 Spring Framework 7)。


一句话:Spring Boot 3.5 相比 2.x,是用 Java 17 + Jakarta + 新 Spring 生态 换一代底座,并在 性能(虚拟线程/Native)、开发效率(Compose/Testcontainers)、可观测与运维(结构化日志/SBOM/SSL 监控) 上全面领先;代价是 2.x → 3.x 迁移工作量大,适合新项目直接用 3.5,老项目按阶段升级。

相关推荐
慧一居士1 天前
Apache StreamPark 功能和使用场景介绍、使用步骤详细示例
数据仓库
牛奶咖啡131 天前
大数据Hadoop运维应用实践——Hadoop平台常见问题与故障汇总、系统调优、网络规划与硬件存储选型
大数据·hadoop·hadoop集群操作系统调优·hadoop集群运维问题汇总·hadoop集群硬件规划·大数据平台网络规划·大数据平台硬件存储选型
雨晨源码(同名B站)1 天前
基于Python的网易云音乐评论数据情感化分析系统 音乐爬虫信息可视化 |SnowNLP评论情感分析
开发语言·hadoop·爬虫·python·信息可视化·毕业设计
赤土 炙焱2 天前
hiveserver2启动失败,磁盘满了
hive·hadoop
慧一居士2 天前
Hologres 功能及使用场景介绍,实践详细步骤示例
数据仓库
哥本哈士奇2 天前
dbt+SQLServer构建数据仓库(10):macro 以及 data vault的应用实例
大数据·数据仓库·sqlserver
Francek Chen2 天前
【大数据处理与分析】数据仓库Hive:02 数据湖
大数据·数据仓库·hive·hadoop·分布式·数据分析
自由能燃气设备4 天前
燃气容积式热水器厂家选购指南:2026年商用热水设备采购避坑手册
大数据·数据库·数据仓库·人工智能
哥本哈士奇4 天前
dbt+SQLServer构建数据仓库(8):Vibe Coding用dbt构建data vault数仓
数据仓库·sqlserver
Blossom i4 天前
Python+spark2.0+Hadoop机器学习与大数据实战第十一章:Python Spark的集成开发环境
大数据·hadoop·spark