Spring Boot 4.0 新特性全解:基线升级、Web 生态换代、API 版本治理、声明式 HTTP Client

springboot4.0 已经正式发布,本文旨在梳理 Spring Boot 4.0 的“新增与变化点”,聚焦对工程落地有直接影响的内容。

一、重点特性升级

1. 平台基线升级:对齐 Spring Framework 7 与 Servlet 6.1 / Jakarta EE 11

Spring Boot 4.0 的首要变化是平台基线整体前移:

  • Spring Framework 基线升级到 7.0.x
  • Servlet 基线升级到 6.1(Jakarta EE 11)
  • 内嵌容器主线对齐到 Tomcat 11 / Jetty 12.1(与 Servlet 6.1 匹配)

影响:

  • 任何与 jakarta.*、Servlet API、容器适配相关的依赖,需要升级到兼容 Servlet 6.1 的版本线
  • 自定义 Filter/Servlet、以及第三方组件(网关插件、监控探针、老旧 SDK)需要回归验证

2. Starter 结构调整:Web 服务器从“隐式默认”变成“显式可插拔”

Boot 4.0 对 Web 服务器 starter 做了结构性调整:

  • spring-boot-starter-web / spring-boot-starter-webflux 不再隐式绑定某个服务器实现
  • 新增更清晰的容器 starter(按 Servlet / Reactive 维度区分):
    • spring-boot-starter-web-server-tomcat
    • spring-boot-starter-web-server-jetty
    • spring-boot-starter-reactive-web-server-tomcat
    • spring-boot-starter-reactive-web-server-jetty

影响:

  • 需要明确选择容器实现(Tomcat 或 Jetty),依赖图更清晰、更可控
  • 对“平台统一容器版本”的团队更友好(便于强制收敛)

3. Undertow 移除:Servlet 6.1 兼容性导致的硬性变化

Boot 4.0 移除了 Undertow 的内嵌支持,原因是 Undertow 目前不支持 Servlet 6.1。

工程影响:

  • 依赖 Undertow 的项目需要迁移到 Tomcat 或 Jetty
  • 如果团队强依赖 Undertow(性能、特性、生态),需要评估自行维护适配链路的成本(通常不建议)

4. API Versioning:框架内建的版本治理能力

Boot 4.0 把 API 版本治理提升为框架能力(不再只是网关约定或自研技巧):

  • 支持在 Spring MVC / WebFlux 中声明与解析版本
  • 支持默认版本、版本解析器、版本格式解析、废弃策略处理等扩展点

4.1 Header 取版本(示例)

spring.mvc.apiversion.default=1.0.0 spring.mvc.apiversion.use.header=X-Version 

4.2 Controller 上声明版本(示意)

具体注解/扩展点以 Spring Boot 4.0 最终 API 为准;实际项目建议统一版本策略(Header/Path/Query 选其一)。
@GetMapping("/users")@ApiVersion("1.0.0")publicList<UserDTO>v1(){...}@GetMapping("/users")@ApiVersion("2.0.0")publicList<UserDTO>v2(){...}

建议:

  • 对外 API/开放平台建议尽早统一版本来源(Header 或 Path),避免“网关一套、应用一套”
  • 版本废弃需要配套:文档标注、灰度周期、监控(旧版本调用量)、以及下线策略

5. 声明式 HTTP Client:HTTP Service Clients 一等公民化

Boot 4.0 强化了“接口式 HTTP Client”的工程化体验:

  • 通过注解接口描述外部服务契约(而不是手工拼 URL)
  • 支持按组配置 base-url、拦截器、超时等
  • 适合多环境、多域名、微服务间调用治理

5.1 定义接口(示例)

@HttpExchangepublicinterfaceBillingClient{@GetExchange("/api/bills/{id}")BillDTOget(@PathVariableLong id);}

5.2 扫描导入

@SpringBootApplication@ImportHttpServices(basePackages ="com.example.clients")publicclassApp{}

5.3 按组配置 base-url(示例)

spring.http.serviceclient.billing.base-url=https://billing.example.com 

建议:

  • 对外部依赖调用必须配套:超时、重试、熔断、限流与降级(建议与 Resilience4j 等组合)
  • 调用链路建议统一透传 traceId,以便端到端排障

6. 可观测性:OpenTelemetry Starter 纳入官方阵列

Boot 4.0 新增 spring-boot-starter-opentelemetry,用于更标准地接入 OpenTelemetry 相关能力。

工程建议:

  • 统一团队的 tracing/metrics/logs 采集入口,避免各服务“各配各的”
  • 与 Actuator、日志(MDC/traceId)、以及 OTLP exporter 等形成一致的观测口径

7. Kotlin 生态:Kotlin Serialization Starter

Boot 4.0 新增 spring-boot-starter-kotlin-serialization,为 Kotlin 项目提供更明确的序列化路径。


8. 测试与客户端工具:RestTestClient、JmsClient 等进入标准工具箱

Boot 4.0 与 Spring Framework 7 同步推动部分现代客户端能力:

  • RestTestClient:更适合 REST 交互测试的工具能力
  • JmsClient:更现代化的 JMS 客户端入口

9. 关键依赖代际升级:Jackson 3 / Hibernate 7.1 / Spring Data 2026 等

Boot 4.0 的“新特性”很大一部分来自关键依赖的大代际升级:

  • Jackson 3.x
  • Hibernate 7.1
  • Spring Data 2026
  • Spring Batch 6.0

影响(必须回归验证):

  • JSON 序列化行为与模块兼容(尤其是自定义序列化、时间类型、泛型/多态)
  • JPA/Hibernate 配置项、方言行为、DDL 生成、懒加载与性能策略
  • Spring Data Repository 行为变化与依赖矩阵变化
  • 第三方 starter/SDK 的兼容窗口(建议建立依赖兼容清单)

二、. Boot 4.0 vs Boot 3.x:升级关注点对比

建议升级路径:先收敛到最新的 Boot 3.5.x,再评估升到 4.0。
维度Boot 3.xBoot 4.0
Spring Framework 基线6.x7.0.x
Servlet/Jakarta 基线Servlet 6.0 / Jakarta EE 10(主线)Servlet 6.1 / Jakarta EE 11
Web starter 结构starter-web 默认绑定容器的习惯更明显Web 服务器 starter 显式拆分,更可插拔
Undertow常见可用选择之一移除(Servlet 6.1 不支持)
API 版本治理多靠网关/自研框架级 API Versioning
HTTP 调用方式RestTemplate/WebClient + 手写封装声明式 HTTP Service Clients + 分组配置
可观测性OTel 依赖通常手动组合新增 OTel starter,标准化更强
关键依赖代际Jackson 2 / Hibernate 6 等Jackson 3 / Hibernate 7.1 / Spring Data 2026 等

三、. 升级落地建议

  1. 先到 3.5.x 再升 4.0:减少迁移跨度
  2. 先清理 deprecated:避免升级后集中爆炸
  3. 先补齐测试与观测基线:没有测试/指标就无法判断升级收益
  4. 重点回归:容器/Servlet、序列化、JPA/Hibernate、Actuator 端点与安全策略
  5. 灰度发布 + 回滚预案:按“升级项目”推进,而不是“改版本号”

四、总结

本文介绍了springboot4.0升级的重点内容,及项目升级建议。

Read more

理想、小鹏争相发力汽车机器人,为啥都抢着做?

理想、小鹏争相发力汽车机器人,为啥都抢着做?

最近几年,伴随着AI科技的高速发展,各家企业都在纷纷布局具身智能,就在近期,理想、小鹏都在争相发力汽车机器人,为什么会这样?他们抢着做的原因是啥? 一、理想、小鹏争相发力汽车机器人 据界面新闻的报道,试图从硬件参数竞赛与价格战泥潭中抽身的汽车制造商们,正在把筹码押向全新的AI赌注。它们希望打造出一种媲美科幻电影,具备主动感知与服务能力的“汽车机器人”。这场转向不仅关乎技术升级,也被视为向资本市场讲述新一轮增长故事的关键。 理想汽车CEO李想日前发文称,人工智能正经历从Chatbot(聊天机器人)向Agent(智能体)进化。过去AI工具更多提供建议,但真正进入生活和用于生产和生活,它必须能够行动。他认为,汽车本质上是一个在物理世界移动的机器人,应当像司机一样理解用户需求、主动提供服务。 要实现这一愿景,车辆必须同时具备意图理解与物理执行能力,这也意味着目前独立运作的两套系统需要打通,即负责交互与服务的智能座舱,以及负责感知与控制的智能驾驶。只有形成从决策到控制的完整链路,“汽车机器人”才具备落地现实基础。 小鹏汽车CEO何小鹏在内部讲话中也给出了相似判断。据36氪报道,何小

微信群“智”变:扣子机器人无缝接入实战

微信群“智”变:扣子机器人无缝接入实战

一、引言 在数字化时代,微信群已经成为人们日常沟通、工作协作和社群运营的重要阵地。但随着群成员数量的增加和信息交流的日益频繁,群管理的难度也在不断攀升。想象一下,你运营着一个几百人的技术交流群,每天要回复大量重复的问题,还要时刻关注群内动态,防止广告和不良信息的干扰,这无疑是一项耗时耗力的工作。 这时,扣子(Coze)机器人的出现,为我们解决这些问题提供了新的思路。扣子机器人是一款强大的人工智能工具,它能够理解自然语言,执行各种任务,如自动回复问题、智能提醒、信息整理等 。将扣子机器人无缝接入微信群,就相当于为你的微信群配备了一位不知疲倦、反应迅速的智能助手,能够大大提升群管理的效率和质量,让你的微信群运营更加轻松高效。接下来,本文将详细介绍如何将扣子机器人接入微信群,让我们一起开启微信群智能管理的新篇章。 二、准备工作 2.1 注册与账号准备 要使用扣子机器人,首先需要在扣子平台进行注册。打开扣子平台的官方网站,点击注册按钮,按照提示填写有效的邮箱地址、设置密码,并完成人机验证。注册成功后,系统会发送一封验证邮件到您填写的邮箱,点击邮件中的验证链接,激活账号。 登录扣子

Flutter 三方库 eth_sig_util 的鸿蒙化适配指南 - 掌握以太坊加密签名核心技术、助力鸿蒙端 Web3 钱包与去中心化身份验证应用开发

Flutter 三方库 eth_sig_util 的鸿蒙化适配指南 - 掌握以太坊加密签名核心技术、助力鸿蒙端 Web3 钱包与去中心化身份验证应用开发

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 eth_sig_util 的鸿蒙化适配指南 - 掌握以太坊加密签名核心技术、助力鸿蒙端 Web3 钱包与去中心化身份验证应用开发 前言 在 OpenHarmony 鸿蒙应用的 Web3 浪潮中,安全性是应用生死存亡的关键。无论是构建非托管钱包、登录去中心化应用(dApp),还是执行 EIP-712 结构化数据的确认,都离不开严谨的以太坊签名与加密协议。eth_sig_util 作为一个专门针对以太坊签名习惯优化的 Dart 工具库,支持 personal_sign、signTypedData 以及公钥恢复等核心算法。本文将指导你如何在鸿蒙端集成 eth_sig_util,构建一套符合全球标准的加密验证体系。 一、原原理分析 / 概念介绍 1.

宇树机器人SDK2开发指南:从环境搭建到Demo测试

宇树机器人SDK2开发指南:从环境搭建到Demo测试

本文以宇树 G1 人形机器人为主线,系统介绍 unitree_sdk2(C++)与 unitree_sdk2_python(Python)的完整开发流程,涵盖通信架构原理、环境搭建、依赖安装、Demo 编译运行、网络配置以及常见问题处理,适合具身智能领域的初中级开发者快速上手。 目录 1. SDK2 概述与架构原理 2. 开发环境要求 3. 获取官方 SDK 包 4. 安装依赖与编译 5. 机器人与开发机网络配置 6. 调试并运行 Demo 7. Python SDK Demo 测试 8. 常见问题与解决方案 9. 总结 1. SDK2 概述与架构原理 1.