写点什么

Spring Framework 6 将使用 Java 17 和 Jakarta EE 9 作为基线版本

2021 年 9 月 08 日

Spring Framework 6将使用Java 17和Jakarta EE 9作为基线版本

本文最初发表于Spring官方博客网站,由 InfoQ 中文站翻译并分享。


在最近召开的 SpringOne 上,Spring 官方宣布 Spring Framework 6 和 Spring Boot 3 计划将基于更高的基线于 2022 年的第四季度发布通用可用版本:


  • Java 17+(目前 Spring Framework 5.3.x 的基线是 Java 8-17)

  • Jakarta EE 9+(目前 Spring Framework 5.3.x 的基线是 Java EE 7-8)


这种具有前瞻性的基线将会为我们的 API 设计和集成工作带来明显的收益,让应用程序的代码保持崭新的状态,并且能够让框架和应用程序在未来的许多年内保持良好的发展。


当然,这也是有代价的,基于 Spring Framework 6 和 Spring Boot 3 的应用程序在运行时方面至少需要 JDK 17,并且需要 Tomcat 10 / Jetty 11(为了兼容 Jakarta EE 9)环境。


更重要的是,应用程序的源代码可能需要一些改变:例如,在 Jakarta EE 9 中,只要涉及到 Servlet API、JPA、Bean Validation 等功能,就需要将 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 和相关可用的解决方案,这样就可以享受新基础设施的优势和新的架构方案。我们希望你能在未来几年内欣赏这些选择。


PS: 如果你想了解 JDK 11 作为 LTS(Long-Term Support)的相关信息,请注意 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 23 LTS(2024)和 JDK 29 LTS(2027)需要支持,最终的支持范围将会是相当广泛的 JDK 17-29。


英文链接:


https://medium.com/@puneet.chandel/technology-choices-that-make-sense-today-f76872743ec1

2021 年 9 月 08 日 09:421650
用户头像
张卫滨 业精于勤,行成于思。

发布了 383 篇内容, 共 221.8 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

算法刷题提醒——微信小程序 [持续优化ing]

小匚

深度思考 随笔杂谈 成长与思考

一文帮你搞懂 Android 文件描述符

vivo互联网技术

android 文件 文件系统

滚动加载的网页只需点 10 下鼠标即可抓取,无编码学爬虫之四

梦想橡皮擦

Python 28天写作 3月日更

ICDAR2021首届文档图像与自然语言处理研讨会征稿开始

爱极客侠

区块链助力山东文化旅游整体行业解决方案

源中瑞-龙先生

To B产品经理需要哪些能力呢?

博文视点Broadview

MySQL异常问题经验贴

华为云开发者社区

MySQL 数据库 时区 SSL 连接

可视化表单编辑器

day day up

Atlassian Data Center 如何优化企业中新员工的远程入职流程

Atlassian

HR Atlassian 远程工作

Pgbouncer最佳实践:系列三

PostgreSQLChina

数据库 postgresql 软件 开源社区

玩家永远是对的——认知失调

Justin

心理学 28天写作 游戏设计

基于GES图数据库的大规模数据追溯服务优化

华为云开发者社区

数据 华为云 图数据库 数据追溯 华为云GES

【万字好文】一文看懂持续部署按需发布!DevOps部署和发布方法大全

京东科技开发者

DevOps SaaS

第五周

Jove

产品经理如何帮助减少技术债务 ?

禅道项目管理

产品 代码规范 技术债

Linux 多线程详解 —— 线程创建、终止、等待、分离

赖猫

Linux 多线程与高并发 服务器开发 Linux服务器开发 Linux线程

如何实现在直播中播放音频文件

anyRTC开发者

音视频 WebRTC 直播 RTC 音频

第五六周心得

Trigger

极客时间 产品经理训练营

架构学习20210302日(001)

张小胖

Elasticsearch search scroll 游标查询

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

来自农村的大学生开发者,用技术改变自己的家乡

华为云开发者社区

开发者 物联网 IoT 华为云 智慧大棚

【LeetCode】比特位计数Java题解

HQ数字卡

算法 LeetCode 28天写作

力扣(LeetCode)刷题,简单+中等题(第28期)

不脱发的程序猿

LeetCode 编程之路 面试刷题 28天写作 算法面经

产品文档总结

mas

在云中应用自动化的5种方法

浪潮云

云计算

一文详解什么是可解释AI

华为云开发者社区

mindspore 可解释AI Gradient GradCAM RISE

云计算、大数据已经过时?不,正是因为它们RPA才能大流行

王吉伟频道

人工智能 云计算 大数据 RPA 自动化

力扣(LeetCode)刷题,简单+中等题(第29期)

不脱发的程序猿

LeetCode 编程之路 面试刷题 28天写作 算法面经

数仓GaussDB(DWS)全量备份总结

华为云开发者社区

数据安全 GaussDB 备份 Roach 数据备份

产品更新 | 阿里云CDN边缘图像处理功能开放内测

阿里云Edge Plus

CDN 边缘计算 图像处理

一个100%省力的,让城市管廊运维变得轻松的秘诀

一只数据鲸鱼

物联网 数据可视化 智慧城市 3D可视化 智慧管廊

Spring Framework 6将使用Java 17和Jakarta EE 9作为基线版本-InfoQ