news 2026/6/10 13:19:05

JAVA 21 Spring Boot 4 学习--迁移指南 Migration Guide

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JAVA 21 Spring Boot 4 学习--迁移指南 Migration Guide

作为 Spring Boot 3.x 之后的首个大版本更新,Spring Boot 4.0 基于 Spring Framework 7.0、Jakarta EE 11 和 Java 17+(推荐 Java 21 或 25),带来了模块化架构重构、虚拟线程原生支持、HTTP 服务客户端自动配置等重大变化。

迁移前准备

升级到最新的3.5.x版本

  1. 官方建议升级 4.x之前,先升级至3.5.x的最新版本,因为这会确保你的项目根据最新的依赖项进行构建
  2. 花时间检查项目中对 deprecated方法的调用,这些将要在4.x版本中删除

review Dependencies【依赖项】

spring boot 4.x更新了大量的依赖项,
可以review 从dependency management for3.5.x到 dependency management for4.0.x的依赖项变化,来评估针对项目的影响

如果你的项目使用了不受Spring Boot管理的依赖项,如Spring Cloud, 则需要升级至兼容的版本

Review System Requirements

  • Spring Boot 4.0需要Java 17+。建议使用最新的Java LTS版本。
  • Spring Boot应用程序也可以使用Kotlin开发,但需要使用v2.2+
  • 如果使用GraalVM native-image,则必须使用Java 25 +
  • Spring Boot 4基于Jakarta EE 11,需要Servlet 6.1基线。
  • 如果您直接管理依赖项,请确保升级至兼容版本

Review Deprecations from Spring Boot 3.x

Spring Boot 3.x中弃用【deprecated】的类、方法、属性在 4.x版本中已经删除。请确保在升级之前没有调用deprecated的方法

升级至 Spring Boot 4

检查完项目及其依赖项的状态后,升级到Spring Boot 4.0的最新维护版本

4.x中被移除的特性

Undertow

因为不兼容Servlet 6.1 baseline,官方不建议将4.x的应用运行在不兼容servlet 6.1的容器中

Pulsar Reactive

在决定移除Spring Pulsar中的反应器支持之后

  • Spring Boot不再管理reactive Pulsar客户端。
  • Spring Pulsar Reactive的自动配置也被移除。

Embedded Executable Uber Jar Launch Scripts

对用于创建“完全可执行【fully executable】”jar文件的嵌入式启动脚本的支持已被删除。这种支持是特定于类unix操作系统的,并且有许多限制

可以使用Spring Boot的构建插件创建uber jars,并使用java -jar运行它们

Spring Session Hazelcast

Spring Session Hazelcast is now under the leadership of the Hazelcast team. As such, direct support for Spring Session Hazelcast has been removed from Spring Boot itself.

Spring Session MongoDB

Spring Session MongoDB is now under the leadership of the MongoDB team. As such, direct support for Spring Session MongoDB has been removed from Spring Boot itself.

Spock集成

Spring Boot的Spock集成已经被删除,因为Spock还没有支持Groovy 5。

模块化架构

Spring Boot 4.0有了新的模块化设计,
Spring Boot 4 将spring-boot-autoconfigure拆分为多个专注的模块,每个技术都有独立的 starter 和对应的测试 starter。

main code变化

  • 模块命名:spring-boot-<technology>
  • 包路径:org.springframework.boot.<technology>
  • Starter 命名:spring-boot-starter-<technology>
  • 之前没有 starter 的技术(如 Flyway、Liquibase)现在需要显式添加对应的 starter

test code变化

  • 模块命名:spring-boot-<technology>-test,
  • 包路径:org.springframework.boot.<technology>-test
  • Test Starter 命名:spring-boot-starter-<technology>spring-boot-starter-<technology>-test

模块化的优势

  • 减少 IDE 干扰:IDE 自动完成只显示你实际使用的技术相关的类和配置属性,不再出现无关的代码提示。例如,如果你不使用 GraphQL,IDE 不会提示 GraphQL 相关的配置属性
  • 更小的运行时占用:只引入实际使用的模块,减少类路径开销和启动扫描成本。Spring Boot 3.5 的spring-boot-autoconfigure是 2 MiB,模块化后只引入需要的模块,显著减少占用
  • 避免意外自动配置:模块化后,Spring Boot 能更准确地判断你的意图。例如,如果只使用WebClient(通过spring-boot-starter-webclient),不会意外启用 Web 服务器自动配置,不再需要调用SpringApplication.setWebApplicationType(WebApplicationType.NONE)
  • 启用新用例:例如,现在可以独立使用 Micrometer 指标(spring-boot-starter-micrometer-metrics),而不需要完整的 Actuator 依赖链
  • 更好的维护性:模块边界成为明确的契约,而不是软约定,便于团队协作和代码维护

Classic Starter 【快速迁移方案】

如果你正在升级一个现有的应用程序,只是想快速运行,你可以使用“Classic Starter POMs”。classic starter提供了所有模块,但排除了它们所有的可传递依赖。这提供了一个与上一代Spring Boot非常相似的设置,其中所有自动配置类都是可用的。

Previous StarterClassic Equivalent
spring-boot-starterspring-boot-starter-classic
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 6:06:30

Excalidraw绘制产品创新流程:从想法到上市

Excalidraw 绘制产品创新流程&#xff1a;从想法到上市 在一次跨时区的产品评审会上&#xff0c;团队正为新功能的架构设计争论不休。产品经理口述逻辑&#xff0c;工程师试图脑补结构&#xff0c;设计师频频打断确认细节——会议持续了近两小时&#xff0c;白板上却仍是一团混…

作者头像 李华
网站建设 2026/6/8 4:53:50

Excalidraw开源优势解析:自由部署、数据私有化保障

Excalidraw开源优势解析&#xff1a;自由部署、数据私有化保障 在远程协作成为常态的今天&#xff0c;一个简单却常被忽视的问题正在困扰着技术团队&#xff1a;我们画的架构图、流程图和原型草图&#xff0c;到底存到了谁的服务器上&#xff1f; Miro、Figma 这类工具确实好用…

作者头像 李华
网站建设 2026/6/3 15:48:02

信息学奥赛一本通 1615:【例 1】序列的第 k 个数

【题目链接】 ybt 1615&#xff1a;【例 1】序列的第 k 个数 本题的a、b、ca、b、ca、b、c&#xff0c;等差数列公差、等比数列的公比都为整数。 【题目考点】 1. 快速幂 相关知识见&#xff1a;洛谷 P1226 【模板】快速幂 2. 等差数列 相邻两项的差相等的数列为等差数列…

作者头像 李华
网站建设 2026/6/10 10:04:09

Excalidraw构建可持续发展战略:ESG目标分解

Excalidraw构建可持续发展战略&#xff1a;ESG目标分解 在企业纷纷将可持续发展纳入核心战略的今天&#xff0c;如何让ESG&#xff08;环境、社会与治理&#xff09;不再停留在年报中的几行文字&#xff0c;而是真正成为可执行、可追踪、可协作的战略行动&#xff1f;许多团队…

作者头像 李华
网站建设 2026/6/10 9:47:36

Excalidraw绘制企业文化传播:价值观落地路径

Excalidraw绘制企业文化传播&#xff1a;价值观落地路径 在一家快速扩张的科技公司里&#xff0c;HR团队又一次面临老问题&#xff1a;新员工培训时&#xff0c;讲完“客户第一”“拥抱变化”这些核心价值观后&#xff0c;台下眼神依旧迷茫。PPT翻页如常&#xff0c;掌声稀疏&a…

作者头像 李华
网站建设 2026/6/6 3:14:17

65、Windows 启动脚本与 BIOS 设置全解析

Windows 启动脚本与 BIOS 设置全解析 1. 制作启动脚本 启动脚本是在 Windows 启动时自动执行的脚本,制作过程相对简单。本质上,你可以创建普通的 PowerShell 脚本、批处理文件或其他类型的脚本,然后采取措施使其在 Windows 启动时执行。以下是几种不同的实现方法: 1.1 使…

作者头像 李华