java - Spring Boot 2.7 EOL 后的缓解措施

标签 java spring spring-boot

我知道 Spring Boot 2.7 即将结束其非商业支持 2023-11-24 。对 Spring Framework 5.3 的支持将在一年多后结束:2024-12-31 .

那么对于一个短期内无法升级到Spring Boot 3.0的项目来说,除了org.springframework.boot:spring之外,添加对Spring Framework BOM的依赖是不是一个好的做法? -boot-dependency:2.7.x 同时?

这当然只能缓解 Spring Framework 5.3 中修复的漏洞,spring-boot-dependencies 还有更多需要手动更新的依赖项。

最佳答案

Spring Boot 与 Spring 框架有些紧密耦合。因此,您不能将 Spring Boot 3.x 与 Spring Framework 5.y 一起使用。这样做可能会破坏一些东西并且根本不受支持。

这给你提供了 3 种可能性:

保持在 2.x/5.y

您可以继续使用 Spring Boot 2.7。

如果您想使用较新版本的 Spring Framework( future 更新),可以使用 <spring.version>即使您使用的是旧的 Spring Boot 2.x 版本,也可以使用 future 的 5.y 版本。

虽然这意味着使用不受支持的 Spring Boot 版本,但您使用的大部分内容可能是 Spring Framework,您可以通过这种方式更新。
此外,他们仍然会发布 Spring Boot 的公共(public)更新,以响应商业更新请求。

您可能仍希望尽早开始更新,以便可以尽早切换到较新的版本。

迁移

在某些时候,您无论如何都需要迁移。

  • 首先,更新到 Java 17 和最新版本的 Spring Boot 以及依赖项的最新版本。确保一切都编译并且您的测试通过。
  • 然后,运行 IDE 的迁移工具(Spring Tools 4、IntelliJ Ultimate 中的工具或 rewrite reciepts),以便迁移到 Spring Boot 3 和 Spring Framework 6。
  • 更新您的依赖项(如有必要)并确保一切都能编译。
    • 您可能需要适应一些弃用/删除的情况。
  • 最后,确保所有测试均通过并彻底测试所有更改。

即使您说无法更新项目,您最终还是需要这样做。

切换到商业支持

当然,您也可以支付商业支持费用,但在某些时候您仍然需要迁移。

关于java - Spring Boot 2.7 EOL 后的缓解措施,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77443578/

相关文章:

java - 浮点到大十进制

java - 不记录套接字请求

java - 如何向ajax请求添加请求参数,以获取从jSON初始化并由Spring映射的jQuery数据表

java - 无法解析客户的存储库元数据

java - 递归绘图

java - 当使用 SSL 转移到 mod_proxy_ajp 时,tomcat 停止在 apache 后面提供服务

java - Spring Security 5.1.5 与 WebFlux 用户禁用不起作用

java - 如何在 spring boot rest 模板客户端中处理过期的刷新 token

spring - 为单个 Spring Boot 实例配置多个模板解析器

java - Apache Commons FileUpload Stream API 在 Spring 5 中不起作用