首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在 Spring Boot 官网上有这么一句话:小心从Spring Boot 2.x 到 3.x 之间的间隙,作为一个开发...

最近搞框架升级升级的头大。不得不说,框架每年升级的速度比开发的速度快多了。

如果我们在开发一款新产品时,使用的是当前最新的框架,时隔五年,再回头看看当时选中的框架,或许它们已经破败不堪,网上到处流传着关于它们的漏洞。这也是很多公司,明明业务变化不大,但软件年年升级的原因。

这也促使我们这些开发者,只要不离开这个舞台,就要经常关注框架动态。

Spring Boot 2.x 到 Spring Boot 3.x 的变化是非常大的,官方有这么一句提醒:

Mind the Gap 小心间隙,从  2.x 升级到 3.x !!!

在 Spring Boot 从 2.x 版本迁移到 3.x 版本时,确实有一些显著的差异和变化,需要开发者注意。这些差异主要体现在以下几个方面:

1. JDK 版本要求:

Spring Boot 2.x:支持 JDK 8 到 JDK 11。

Spring Boot 3.x:从 Spring Boot 3.x 开始,要求 JDK 17或更高版本。因此,如果我们正在使用 JDK 8 或 JDK 11,迁移到 Spring Boot 3.x 时,必须升级到 JDK 17 或更高版本。

注意:Spring Boot 3.x 不再支持 JDK 8 和 JDK 11,确保我们的开发环境与 Spring Boot 3.x 的要求兼容。

2. Spring Framework 版本更新:

Spring Boot 2.x:基于 Spring Framework 5.x。

Spring Boot 3.x:基于 Spring Framework 6.x。

Spring Framework 6 进行了较大的架构更新,其中包括对JDK 17+的全面支持,以及对Jakarta EE 9规范的支持(一些类和包的命名空间发生了变化)。

3. Jakarta EE 9 迁移:

从 Spring Boot 3.x 开始,Spring Boot 已经迁移到Jakarta EE 9规范。这意味着许多 Java EE 的 API 已经从javax.*改为jakarta.*。

例如,javax.servlet变成了jakarta.servlet,javax.persistence变成了jakarta.persistence,等等。

如果我们使用了任何与 Java EE 相关的技术(例如 JPA、JSP、Servlet),那么我们需要更新我们的代码来适配新的命名空间。

4. 依赖更新与版本兼容性:

Spring Boot 3.x 更新了许多内置的依赖,特别是对 Java 17 和 Spring 6 的支持。这意味着一些库和框架的版本可能发生了变化。

我们可能需要检查和更新项目中依赖的版本,特别是与 Spring 相关的库(例如 Spring Data、Spring Security、Spring Web、Spring Cloud 等),确保它们与 Spring Boot 3.x 兼容。

5. 启动器和自动配置的变化:

一些启动器(Starters)和自动配置的方式可能发生了变化或被移除。需要注意 Spring Boot 3.x 中可能不再支持或改动的配置。

比如,某些自动配置类可能已经被废弃或者重新组织,特别是与 Jakarta EE 和 Spring 6 集成的部分。

6. Spring Boot 3.x 采用的新特性:

原生支持 GraalVM:Spring Boot 3.x 提供对 GraalVM 原生镜像的更好支持,可以帮助开发者在不依赖 JVM 的情况下构建更小、更高效的应用程序。

新的 Spring Boot Web 架构:Spring Boot 3.x 支持新的 web 框架和架构特性,帮助开发者更好地构建现代化的应用。

7. 废弃和移除的功能:

在 Spring Boot 3.x 中,某些在 2.x 版本中被标记为废弃的功能可能已经被完全移除。这意味着在升级时,需要特别注意移除掉已经不再支持的 API 和功能。

例如,某些配置文件、属性和自动配置类可能不再存在,开发者需要替换或调整这些部分。

8. 配置和属性变化:

Spring Boot 3.x 可能对配置文件(如application.properties或application.yml)的格式或支持的属性进行了更新或改动。

需要检查和更新配置文件,特别是那些与 Spring Boot 2.x 和 Spring 3.x 不兼容的配置项。

9. 其他相关库的升级:

Spring Security、Spring Data、Spring Cloud 等库在 Spring Boot 3.x 中也可能进行了更新,因此这些库的升级会影响到项目的整体兼容性。开发者需要确保这些库与 Spring Boot 3.x 兼容。

最后总结:

从 Spring Boot 2.x 升级到 3.x 时,我们应该关注以下方面:

JDK 版本:确保使用 JDK 17 或更高版本。

Spring Framework:迁移到 Spring 6 和 Jakarta EE 9(命名空间的变化)。

依赖版本和兼容性:检查项目中所有依赖,确保它们与 Spring Boot 3.x 兼容。

废弃和移除的功能:移除不再支持的功能和配置。

配置文件和自动配置的变化:适配 Spring Boot 3.x 中的新配置和新特性。

总而言之,从架包名称、配置变更、依赖兼容、功能新增废弃这几项都能看出改动有多大。一个项目改一下pom文件,到处都是红色的,想想都累。

从 2.x 到 3.x 还升级啥,不用在旧项目上改,直接起个新项目,一点一点迁移得了。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OkcIL55zso1JZ1VZsJVoJ44Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券