写点什么

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:0020852

评论

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

HarmonyOS NEXT 应用元服务开发-分布式数据对象迁移数据权限与基础数据

最新动态

假如你从8月份开始准备Java面试,秋招如何成功上岸互联网大厂?Java面试题及答案分享!

程序员高级码农

Java 程序员

鸿蒙NEXT权限申请全攻略:系统授权与用户授权之道

最新动态

HarmonyOS NEXT自定义数据类型的跨应用协作:实现企业级文档管理

最新动态

低代码 & 大模型:JeecgBoot 如何成为 AI 应用加速器

JEECG低代码

低代码 AI应用 AI 大模型

京东商品详情API响应数据解析

tbapi

京东商品详情API 京东数据采集 京东数据分析 京东接口

HarmonyOS NEXT元服务开发快速入门案例

最新动态

鸿蒙NEXT应用国际化:数字与度量衡格式化

最新动态

跨平台数据整合:淘宝商品详情API在自媒体矩阵中的应用实践

tbapi

淘宝商品详情接口 淘宝API 天猫商品详情接口

ArkTS 应用的代码混淆策略:提升安全性与性能

最新动态

签约快报|天润融通签约得力集实原创

天润融通

HarmonyOS NEXT 应用开发快速入门案例

最新动态

HarmonyOS NEXT在支付场景中的安全通信设计:基于NFC和Secure Element的数据加密

最新动态

JAVA高级开发工程师怎么找工作?JAVA工作经验4-5年一般会面试什么问题?

程序员高级码农

Java 程序员 Java 面试

IME Kit入门:HarmonyOS输入法开发概述与基础操作

最新动态

华为鸿蒙 Want:应用组件之间信息传递的桥梁

最新动态

AGORA:通过群体蒸馏激发大语言模型的群体涌现能力

qife122

大语言模型 推理能力

HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)事件推荐接入方案

最新动态

阿里云招Java研发咯

Y11

面试 找工作 简历

鸿蒙NEXT开发案例:二维码的生成与识别

最新动态

华为鸿蒙 UIAbility 组件:构建用户界面的舞台

最新动态

HarmonyOS NEXT 端侧部署基础之 HiAI Foundation Kit

最新动态

鸿蒙NEXT开发案例:经纬度距离计算

最新动态

利用NFC增强用户体验:HarmonyOS NEXT的NFC应用指南

最新动态

鸿蒙NEXT开发案例:分贝仪

最新动态

从 ClickHouse、Druid、Kylin 到 Doris:网易云音乐 PB 级实时分析平台降本增效

SelectDB

数据库 kylin 数据分析 Doris 网易云音乐

鸿蒙NEXT开发案例:颜文字搜索器

最新动态

HarmonyOS NEXT跨应用跨设备数据共享实战:从拖拽到同步

最新动态

机器人精准夹取技术实现物品无损搬运

qife122

机器学习 机器人技术

HarmonyOS NEXT方舟数据管理与分布式数据库实战:构建高效同步架构

最新动态

车载Alexa语音助手的核心技术解析

qife122

语音识别 波束成形

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