我知道 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/