写点什么

Spring Boot 3 和 Spring Framework 6 使用 Java 17 和 Jakarta EE 9,并支持基于 GraalVM 的原生 Java

作者:Karsten Silz

  • 2022-12-20
    北京
  • 本文字数:1742 字

    阅读完需:约 6 分钟

Spring Boot 3和Spring Framework 6使用Java 17和Jakarta EE 9,并支持基于GraalVM的原生Java

VMware发布了人们期待已久的Spring Framework 6和 Spring Boot 3。在 Spring Framework 5 发布五年之后,这些版本发布开启了 Spring 生态系统的新篇章。Spring Framework 6 需要 Java 17 和 Jakarta EE 9,并兼容最近发布的 Jakarta EE 10。它还通过 Micrometer 嵌入了可观测性,支持跟踪和度量。Spring Boot 3 需要 Spring Framework 6。它内置支持通过 GraalVM Native Image 的静态预先(Ahead-of-Time,AOT)编译创建原生可执行文件。


VMware 的软件工程高级总监 Michael Minella 告诉 InfoQ:


Spring 采取的方法是让 Spring 开发者在现有的专业知识基础上获取原生编译的收益,而无需进行大量的变更,这在整个生态系统中是独一无二的。


VMware 在 SpringOne 2021 会议上宣布了 Spring Framework 6 和 Spring Boot 3。从 2010 年以来,这是 Spring Framework 第一次在上一个主发布版本两年后(2020 年的 5.3 版本),而不是一年后发布更新。在最近的一次采访中,Java Champion 和 Spring 开发人员倡导者 Josh Long 在讨论 Spring Framework 6 开发时间延长时表示:


“对于我们这些框架开发者来说,迁移至 Jakarta EE 是很有挑战性的”,“可观测性工作也涉及很多的地方”,“与 GraalVM Native Image 的预先(Ahead-of-Time,AOT)编译相关的工作[...]至少从 2019 年开始就以某种形式展开了”。


关于这两个版本相关内容的更多信息,请参见对Josh Long的采访


支持 Jakarta EE 10 使得 Spring Framework 6 能够兼容最新的 web 服务器,比如 Tomcat 10.1、Jetty 11 和 Undertow 2.3。Spring Framework 6 还简化了 HTTP 请求,这是通过将它们定义在所谓的 HTTP 接口中实现的,它类似于 Spring Data JPA 通过资源库(repository)接口简化了数据库查询。借助 RFC 7807 问题详情,HTTP 错误信息也会更有帮助。


作为一个预览特性,Spring Framework 6 可以使用 Java 19 中来自Loom项目的虚拟线程。虚拟线程及其相关的结构化并发 API 简化了 Java 中的并发编程,使其运行更加高效。与Oracle不同,Spring 认为虚拟线程是对反应式编程的补充,而不是要取代它。


在 Spring Framework 6 中值得注意的依赖升级包括 Kotlin 1.7、Hibernate ORM 6.1、用于 JSON 和 XML 解析的 Jackson 2.14 以及用于反应式数据库访问的 R2DBC 1.0。


正如 InfoQ 去年报道的那样,Spring Framework 6 最初是计划包含对 Java Platform Module System(JPMS)的支持的,但这从未实现过。对 JPMS 的支持进行了推迟


Spring Framework 6.0 强烈关注 AOT 和 GraalVM 原生镜像,以优化基于 Spring 的应用的部署。[...]今年以来,对它[模块支持]的需求非常少。[...]更深入的模块系统调整仍然是我们为 Spring Framework 6.x 所制定的长期技术战略的一部分。


OpenJDK 的 Leyden 项目计划优化Java,并依赖于 JPMS 和jlink连接工具。如果没有 JPMS 支持,Spring 应用将无法使用这些优化。


Spring Boot 3 的亮点是支持生成原生可执行文件。这些可执行文件启动更快,使用的内存更少,容器镜像更小,而且更安全。这使得 Java 在云中更有竞争力。Quarkus、Micronaut 和 Helidon 这些框架使原生可执行文件在 Java 中流行了起来。InfoQ 最近就这个话题发表了六篇系列文章。当开发人员的机器上安装了 GraalVM Native Image 编译器后,用 Spring Boot 3 创建一个原生可执行文件只需运行./mvnw -Pnative package./gradlew nativeCompile即可。更多细节可以在参阅这篇博客文章


Jakarta EE 9 将 Java 命名空间从javax.*改为jakarta.*。如果现有的 Spring 和 Spring Boot 应用程序导入了 Jakarta EE 类型,如注解、校验或 JPA,就需要对其进行修改。这就是为什么最近推出的Spring Boot Migrator项目正在“致力于从 Spring Boot 2.7 自动升级到 Spring Boot 3.0”。

VMware 缩短了 Spring Framework 6 的商业和开源支持期限。正如 VMware 的 Spring Framework 项目负责人 Juergen Hoeller 所说:


我们期望人们更快地升级到最新的 6.x 特性版本。


而 Spring Boot 3.0 的免费支持期限仍为一年。


VMware 将在 2023 年 1 月 24 日至 26 日的虚拟 SpringOne 会议上讨论其新版本,SpringOne原计划于 2022 年 12 月举行线下的会议。


原文链接:

Spring Boot 3 and Spring Framework 6 Use Java 17 and Jakarta EE 9, Support Native Java with GraalVM


相关阅读:

对话Spring大神:Spring 生态系统的新时代来了!

Spring Boot 3将于2022年11月发布,延迟了对Java模块系统的支持

Spring Boot Migrator简介

2022-12-20 08:0020142

评论

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

三菱课堂笔记 变频器A800系列基础(操作篇)

万里无云万里天

自动化 三菱

win版中望3D 2025(ZW3D2025CAD/CAM软件) v2025中文版

iMac小白

win版Perfectly Clear Workbench(图片编辑软件) v4.6.1.2668 特别版

iMac小白

30 天 52% 回报:GPT-4o 量化交易机器人

俞凡

人工智能 交易

学习笔记:快速成长的几点方法

老张

成长 学习笔记 成长路线

码住!详解时序数据库不同分类与性能对比

Apache IoTDB

三菱课堂笔记 变频器入门

万里无云万里天

自动化 三菱

XMind for mac (XMind思维导图) v24.01中文版

Mac相关知识分享

思维导图 办公软件 Mac软件 软件下载 mac下载

三菱课堂笔记 编程基础

万里无云万里天

自动化 三菱

Final Cut Pro X for Mac(fcpx视频剪辑) v10.7.1简体中文版

Mac相关知识分享

mac软件下载 FCPX软件 FCPX下载 fcpx剪辑 mac下载

Mac苹果3D摄影棚布光软件:Set A Light 3D Studio 汉化版

你的猪会飞吗

Mac 软件 苹果电脑软件下载

昆仑万维颜水成受邀出任2024北京智源大会程序主席及视觉大模型论坛主席

新消费日报

三菱课堂笔记 变频器A800系列基础(功能篇)

万里无云万里天

自动化 三菱

win版Aiseesoft FoneTrans(ios设备管理软件) v9.3.58激活版

iMac小白

win版Icecream PDF Editor Pro(pdf编辑器) v3.24 激活版

iMac小白

win版MediaMonkey Gold(媒体管理工具) v2024.0.0.3031 中文注册版

iMac小白

三菱课堂笔记 编程基础(ST语言篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 变频器维护(800系列对应版)

万里无云万里天

自动化 三菱

win版IDimager Photo Supreme 2024(图片管理软件) v2024.2.0激活版

iMac小白

mac电脑pdf增强插件:Enfocus PitStop Pro 2022激活版

你的猪会飞吗

Mac软件 苹果软件资源 Mac软件推荐

大家来决定:python-office运行时的提示信息,要不要删除?

程序员晚枫

Python 开源 自动化办公

三菱课堂笔记 变频器节能

万里无云万里天

自动化 三菱

win版EaseUS Todo PCTrans(数据迁移软件) v13.15 中文特别版

iMac小白

win版Nitro PDF Pro(全面的PDF工具) v14.26.0.17便携版

iMac小白

win版Gihosoft TubeGet Pro(YouTube 视频下载工具) v9.3.88 专业激活版

iMac小白

win版威力导演 2024 (CyberLink PowerDirector Ultimate) v22.5.3003.0 特别版

iMac小白

三菱课堂笔记 编程应用(梯形图语言 MELSEC iQ-R系列篇)

万里无云万里天

自动化 三菱

ERC404开发:探索代币化资产的新维度

dappweb

区块链开发 ERC404

码住!详解时序数据库不同分类与性能对比

Apache IoTDB

Spring Boot 3和Spring Framework 6使用Java 17和Jakarta EE 9,并支持基于GraalVM的原生Java_语言 & 开发_InfoQ精选文章