有关Spring Boot 2.7的支持终止

概况

最近常听到有人说,据说今年11月将停止支持Spring Boot 2.7。由于我从3.x开始使用Spring Boot,我对于主要版本变化带来了什么不同以及迁移的复杂度等方面产生了兴趣,因此进行了一番调查。

基本上,內容主要來自官方提供的遷移指南、各個版本的發布公告等,我們通過研究整理出了這份筆記。我們在文章末尾提供了參考來源網站等。

在Spring Boot 2.7到3.0之间发生了一些变化。

首先,依我所见,根据变更内容的观察,似乎符合以下情况。

    • SpringFrameworkの対応ver

JDKの対応ver
Java EEからJakarta EEへ変更

SpringBoot 2.xで非推奨APIの削除
Dependency Version
その他変更点

Spring Framework的版本兼容性

首先,根据Spring Boot的版本不同,可用的Spring Framework版本也会有所不同。
在Spring Boot 2.7中,基于Spring Framework 5.3,但是从Spring Boot 3.0开始,需要使用Spring Framework 6.0。
由于Spring Framework 5.3和6.0之间可用的JDK版本等不同,所以这一变更被认为是相当大的。

以下为SpringFramework5.3和6.0的兼容性对应情况。(长期支持版本的JDK8和11终于…)

Spring Framework 5.3Spring Framework 6.0備考JDK8-2117-21
Java EE or Jakarta EEJava EE 7-8Jakarta EE 9-10javaxからJakartaへ変更

由于Spring Framework自身的API等的变动,升级指南已经准备好了,所以参考它可能是一个不错的选择。
只是初步看来,可能会出现一些被弃用的东西,所以需要考虑这些方面。

JDK的兼容版本。

根据前述的Spring Framework版本,可用的JDK也会发生变化。
每个JDK版本的更改内容都总结在以下OpenJDK网站上。
https://openjdk.org/jeps/0
我认为需要检查是否有被弃用或删除的功能等等。

将Java EE更名为Jakarta EE

根据消息,从Java EE转向Jakarta EE后,原本使用javax包的部分据称已经改为使用jakarta包。

据称这意味着需要将以前用javax编写的部分转换为jakarta,以便如下所示。

// Java EE
import javax.xml.bind.annotation.A;
// Jakarta EE
import jakarta.xml.bind.annotation.A;

删除了Spring Boot 2.x中不推荐使用的API。

据说在Spring Boot 3.0版本中删除了2.x版本中不推荐使用的方法和类等。
因此,例如2.7版本中标记为不推荐使用的 DatabaseDriver.GAE 等可能已被删除。

 

关于查看方式,对于Spring Boot 2.x来说,在每个发布说明中查看似乎是唯一的方式,以了解哪些内容被弃用了。(如果有一个汇总的地方会很方便)

依赖版本

看来有相当多的依赖关系发生了变化。
在许多情况下,因为 pom.xml 上明确指定了版本,所以可能需要将其替换为兼容的版本。

该版本的对应关系已经在官方文档中整理,请参考下方链接:
https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/dependency-versions.html
https://docs.spring.io/spring-boot/docs/3.0.x/reference/html/dependency-versions.html

其他更改点

尽管还有其他一些更改点,但基本上这些都已经在迁移指南中整理得很清楚了,因此不在这里详细说明。
就算要提及一些,比如日志日期格式的更改和URL匹配规则的变更等。
由于上述提到的这两个变更和其他一些变更都有着很大影响,因此需要注意。

关于Spring Boot Migrator

自Spring Boot 2.7开始,已经提供了一个名为Spring Boot Migrator的工具,用于从Spring Boot 2.7迁移到Spring Boot 3.0。
https://github.com/spring-projects-experimental/spring-boot-migrator
目前似乎只支持Maven,所以如果您使用Gradle,需要注意。
此外,并没有覆盖所有情况,目前可能还在持续提问和反馈中。

关于有偿支持。

image.png

由于无法特别查到金额感知度,基本上需要进行查询。
然而,据看起来,这似乎最初是由Pivotal公司提供的,而在那种情况下,能找到少量的信息。

据称,Pivotal Spring Runtime的价格为每台服务器8核每年4000美元,或每50个Kubernetes Pods每年2万5000美元。据悉,这一产品也将由Pivotal在日本销售。

这是一个关于Pivotal OpenJDK和Spring Framework的文章,来源链接为https://www.publickey1.jp/blog/19/pivotalopenjdkspring_frameworkpivotal_spring_runtime.html。

当然这已经是过去的事情了,只能作为参考吧。

总结

我研究了有关Spring Boot 2.7支持终止的相关事项。由于是主要版本升级,所以可能会有许多重要的变更。

最后,总结的内容基本上只是表面性质的内容。所以,如果有实际情况与之不符之处,请务必通过评论等方式指出。

请参考

迁移指南
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-迁移指南
https://github.com/spring-projects/spring-framework/wiki/升级到Spring-Framework-6.x指南

发布说明:
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-发布说明
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-发布说明
https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-6.x的新功能是什么

依赖版本
https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/dependency-versions.html
https://docs.spring.io/spring-boot/docs/3.0.x/reference/html/dependency-versions.html

依赖版本:
https://docs.spring.io/spring-boot/docs/2.7.x/reference/html/dependency-versions.html
https://docs.spring.io/spring-boot/docs/3.0.x/reference/html/dependency-versions.html

JEP
https://openjdk.org/jeps/0

JEP
https://openjdk.org/jeps/0

迁移工具
https://github.com/spring-projects-experimental/spring-boot-migrator

广告
将在 10 秒后关闭
bannerAds