领先一步
VMware 提供培训和认证,助您加速进步。
了解更多正如昨天在 SpringOne 大会上宣布的,Spring Framework 6 和 Spring Boot 3 计划在 2022 年第四季度全面推出时,将采用高端基线。
这种前瞻性的基线将在我们的 API 设计和集成工作中提供显著的优势,这将体现在您的应用程序代码中,并使框架和您的应用程序在未来多年内具有前瞻性。然而,它当然也有代价:基于 Spring Framework 6 和 Spring Boot 3 的应用程序在运行时将至少需要 JDK 17,以及至少 Tomcat 10 / Jetty 11(用于 Jakarta EE 9 兼容性)。更重要的是,您的应用程序源代码可能需要进行一些更改:例如,在您涉及 Servlet API、JPA、Bean Validation 等的任何地方,Jakarta EE 9 中 javax 到 jakarta 命名空间的更改。
虽然这乍一听可能有些激进,但请记住我们谈论的是 2022 年第四季度的发布:届时,JDK 17 不仅会作为下一个长期支持版本取代 JDK 11 一年多,它本身也将被 JDK 18 和 JDK 19 等当时可用的功能版本所取代,而 JDK 20 已经接近功能冻结。Jakarta EE 9 也是如此:我们预计届时 Jakarta EE 10 将发布,并且将支持新一代的 Tomcat、Jetty 等作为运行时选项。保持上述基线作为最低要求,这允许在 Spring Framework 6.x 版本中采纳 Java 的进一步发展,Java 17 和 Jakarta EE 9 仅仅是一个开始。
与此同时,Spring Framework 5.3.x 和 Spring Boot 2.x 暂时仍处于积极开发中,Spring Boot 2.6 将于今年 11 月推出,然后 Spring Boot 2.7 将于 2022 年 5 月推出。一旦达到最终的 Spring Boot 2.x 功能分支(目前尚未确定是 2.7 还是可能更晚的版本),该分支将进入扩展的开源维护阶段,与 Spring Framework 5.3.x 一起,与 Spring Framework 6 和 Spring Boot 3 并行重叠数年。请参考我们之前处理 Spring Framework 3.2.x 和 4.3.x 维护分支的方式,以了解这将如何在实践中实现。
因此,如果您打算在未来几年继续使用 JDK 8 或 11,或者即使您打算在 JDK 17 上使用 Spring Framework 5.3 基础设施几年,请放心,我们对 Spring Framework 5.3.x 和 Spring Boot 2.x 的扩展维护将为您提供保障。一旦您准备好为下一代 Java 生态系统准备您的应用程序,您可以随时根据自己的节奏升级到 Spring Framework 6 和 Spring Boot 3,以及 Tomcat、Jetty 等——新的基础设施优势和新的架构选项将为您提供。我们希望您在未来几年会欣赏这些选择。
附言:如果您对 JDK 11 作为 LTS 版本感到好奇,请注意 JDK 11 的商业支持期限比 JDK 8 短,JDK 11 LTS 将在 2023 年末结束。JDK 17 作为下一个 LTS 版本将提供至少到 2026 年的支持期限。我们认为 JDK 8 在生态系统中具有独特的地位;相比之下,JDK 11 是一个过渡版本。此外,JDK 17 提供了一系列最新的语言、API 和 JVM 增强功能,使其成为更具吸引力的升级。最后但并非最不重要的一点是,在同一 Spring Framework 6.x 版本中,直到 JDK 29 LTS(2027 年)都将有 JDK 版本需要支持,无论如何,最终的支持范围将是相当广泛的 JDK 17-29。