点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

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

  • 2021-09-08
  • 本文字数:1343 字

    阅读完需:约 4 分钟

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-09-08 09:423289
用户头像
张卫滨 业精于勤,行成于思。

发布了 479 篇内容, 共 290.6 次阅读, 收获喜欢 628 次。

关注

评论 1 条评论

发布
用户头像
学不动了
2021-10-09 11:17
回复
没有更多了
发现更多内容

戏说系统安全(50/100)

hackstoic

系统安全

​Java进阶(三十八)快速排序

No Silver Bullet

Java 快速排序 10月月更

[架构实战] 学习笔记二

爱学习的麦子

Python应用之计算三角形面积

向阳逐梦

10月月更 Python代码 计算三角形面积

COSCon'22主论坛来袭 开源站在十字路口

开源社

16个分论坛出品标准大揭秘,期待你的申请!

开源社

大数据ELK(十):使用VSCode操作猎聘网职位搜索案例

Lansonli

ELK 10月月更

ESP32-C3 学习测试 蓝牙 篇(四、GATT Server 示例解析)

矜辰所致

蓝牙 ESP32-C3 10月月更 GATT

数组操作の旋转二维数组

掘金安东尼

算法 10月月更

JavaScript中this指向哪儿?如何确定this?-前端面试进阶

loveX001

JavaScript

【一Go到底】第一天---初识Goooooooooooooooooooooooo

指剑

Go go并发 10月月更

简述构建微服务架构的四大挑战

穿过生命散发芬芳

微服务 10月月更

如何打通 SAP Cloud for Customer 系统和微信公众号的双向消息通信功能

Jerry Wang

node.js 微信 SAP 微信平台 10月月更

今日国庆,祝福祖国!【文末超级福利】

图灵教育

读书 国庆节

开发者有话说|程序猿工作多年之后的感悟

慕枫技术笔记

个人成长

工赋开发者社区 | 当PLC与见“IT”:MES/MOM标准之ISA-95基础内容介绍

工赋开发者社区

面试官:高并发场景下,你们是怎么保证数据的一致性的?

一灯架构

Java MySQL 10月月更

ESP32-C3 学习测试 蓝牙 篇(五、添加 characteristic)

矜辰所致

蓝牙 ESP32-C3 10月月更

这些js原型及原型链面试题你能做对几道

loveX001

JavaScript

工赋开发者社区 | 某大型电子装备总装数字化工厂MES/MOM系统实施

工赋开发者社区

2022-10-01:给定一个字符串 s,计算 s 的 不同非空子序列 的个数 因为结果可能很大,所以返回答案需要对 10^9 + 7 取余 。 字符串的 子序列 是经由原字符串删除一些(也可能不删除

福大大架构师每日一题

算法 rust 福大大

用任意类型编写代码——一文带你了解泛型编程

宇宙之一粟

Java 泛型编程 10月月更

Docker下,五分钟极速体验机器学习

程序员欣宸

Docker 10月月更

架构师的十八般武艺:线上运维

agnostic

运维

【从0到1学算法】1. 如何获取题中关键信息

Geek_65222d

10月月更

MyBatis学习笔记之JDBC

simba1949

mybatis JDBC 10月月更

​Java进阶(三十九)Java集合类的排序,查找,替换操作

No Silver Bullet

Java 排序 查找 10月月更 替换

Web3.0杂谈-#004(51/100)

hackstoic

NFT Web3.0

存储优化--分区与冷热分离

喵叔

10月月更

Collections-Arraylist源码解读(一)

知识浅谈

ArrayList 10月月更

计算机网络——集线器与交换机的区别

StackOverflow

编程 计算机网络 10月月更

Spring Framework 6将使用Java 17和Jakarta EE 9作为基线版本_语言 & 开发_Spring官方博客_InfoQ精选文章