Spring Boot 3 将于 2022 年 11 月发布,延迟了对 Java 模块系统的支持
在 2022 JAX 伦敦会议上,来自 Spring 的高级首席软件工程师 Oliver Drotbohm 做了一个非常及时的演讲,题目为 Spring Boot 3 and Spring Framework 6 – A New Generation。Drotbohm 分享了 Spring Framework 6 和 Spring Boot 3 的预计发布日期,也就是会在 2022 年的 11 月底。他还指出,最近发布的 Spring Boot Migrator 项目能够将 Spring Boot 2.7 应用迁移至 3.0 版本,并能将 Spring Boot 2.6 应用迁移至 2.7 版本。迁移至 Spring Boot 3 是必要的,因为 Spring Framework 6 使用了 Jakarta EE 9,支持 jakarta.* 包命名空间。
Drothbohm 重申了这些版本的其他支柱性特性,包括使用 JDK 17 作为新的基线、对 Spring Boot 中基于 GraalVM 实现原生 Java 的开箱即用支持,以及基于 Micrometer 的内置可观测性。SpringOne 计划于 2022 年 12 月 6 日至 8 日举行,该会议将会是成为 Spring Framework 6 和 Spring Boot 3 的发布平台。
Drotbohm 没有讨论在 Spring Framework 6 中对 Java Platform Module System(JPMS)的支持,去年 InfoQ 曾经首次报道过这个问题。他随后向 InfoQ 证实,Spring Framework 6.0 不会提供对 JPMS 的完整支持,但可能会在后续版本中实现:
Spring Framework 6.0 密切关注 AOT 和 GraalVM 原生镜像,以优化基于 Spring 的应用的部署。同时,我们的模块系统计划尚无法构建迁移至完整的 JPMS 模块描述符。在过去一年中,很少有人提出这样的要求。着眼未来,从长远来看,对应用 / 框架级别的模块来讲,基于 jlink 的模块约束方式可能会被基于 GraalVM 风格的独立可达性分析所取代。也就是说, OpenJDK 的 Leyden 项目旨在为其标准化的静态镜像方式重用模块系统的概念和工具,所以对于 Spring Framework 6.x 来说,更深入的模块系统调整依然是我们长期技术战略的一部分。
作为目前的生产版本,Spring Framework 5.3 和 Spring Boot 2.7 将会获得免费支持,直到 2023 年 5 月,在此之后,会提供扩展的商业支持,直到 2025 年 8 月。即将推出的 Spring Framework 6 和 Spring Boot 3 版本将获得一年的免费支持,直到 2023 年 11 月,然后是扩展商业支持,直到 2025 年 2 月。
Spring Boot 3 一年的支持周期保持了与最近的 Spring Boot 版本相一致。VMware 明确表示,Spring Framework 用户应该更快升级到 6.x 版本,这一点 InfoQ 在去年曾经报道过:
我们强烈鼓励 Spring Framework 6 用户加入我们的功能发布流,另外,不要期望长期停留在 6.0.x 版本上,而是希望让 6.1、6.2 等版本的升级成为常规使用模式的一部分。
其他 Java 框架的升级速度甚至更快。例如,Quarkus 大约每月发布一次功能更新,中间还有缺陷修复版本。
Drotbohm 还对 Spring Framework 6 和 Spring Boot 3 的可观测性提出了新的见解。尽管 Spring 套件项目会基于 Micrometer,但对于开发者来说,可观测性将更多地体现在基础设施层面(如对 REST 控制器的请求)。
Spring 目前包括 22 个项目,支持大量的第三方库。Drotbohm 指出,Spring Framework 6 和 Spring Boot 3 在发布时可能不会提供对所有项目和库的原生 Java 与可观测性支持。未来的 Spring 版本将对此进行完善。
原文链接:
https://www.infoq.com/news/2022/10/spring-boot-3-jax-london/
声明:本文为InfoQ翻译,未经许可禁止转载。
点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!
微信扫码关注该文公众号作者