Jakarta EE 10于 2022 年 9 月 22 日发布,是自 Oracle 于 2017 年向 Eclipse 基金会捐赠 Java EE 8 以来,Jakarta EE 工作组发布的第三个主要版本和第四个总体版本。这个版本旨在交付一组规范,用于跨 Jakarta EE 技术(如 Jakarta EE Platform、Web 和新的 Core Profile)构建现代化、简化和轻量级的云原生 Java 应用程序。
新的 Core Profile 定义了 Jakarta EE 规范的一个子集,它面向微服务开发、更小的运行时和 AOT 编译。
Java SE 11 是受 Jakarta EE 兼容实现支持的新基线运行时,但开发人员也可以在 Java 17(最新的 LTS 版本)上开发和部署 Jakarta EE 应用程序。这样就可以构建模块化的应用程序(在 Java 9 中引入),并提供改进的跨组件 API 集成。
Jakarta EE 10 为 20 多个组件规范增加了新功能。
Jakarta Context and Dependency Injection(CDI) 4.0 引入了新的 CDI-Lite 规范,与传统方法相比,它允许无反射编程模型,同时最大限度地提高弹性、可测试性和可维护性。
Jakarta RESTful Web Services 3.1 对 Java SE Bootstrap API 进行了标准化,支持 Jakarta EE 环境之外的 REST 服务,例如单元测试、集成测试等。这个规范还标准化了多年来一直缺失的 Multipart 表单数据。在过去,开发人员需要 Servlet 或特定于供应商的 REST API 来处理 Multipart 媒体类型。
Jakarta Persistence 3.1 现在支持 java.util.UUID,可以将其作为基本的字段类型,这对于在云环境中使用实体 ID 来说非常方便,因为许多数据库不会自动生成 UUID。它还向查询语言和 Criteria API 中添加了几个新函数,让 Jakarta Persistence 变得更加通用,开发人员可以利用实体映射的全部功能编写更复杂的查询,而不必使用原生 SQL 查询。
Jakarta Faces 4.0 带来了一个新的 API,可以只使用 Java 代码定义完整的视图(HTML 页面)。
Jakarta Security 3.0 为 OpenID Connect 协议提供了必要的标准支持,这个协议已被广泛应用于各种服务的登录模块中,例如 Facebook、谷歌、Twitter 等。
Jakarta Concurrency 3.0 增加了使用 Asynchronous 注解的异步方法,它不需要使用 EJB,并允许开发人员指定线程池。
除了这些以外,其他大量的组件规范正在引入或大或小的版本更新,许多被弃用的功能已经被删除,简化并增强了开发者体验。
微软首席项目经理和 Jakarta EE 大使 Reza Rahman 在发布庆典上讨论了 Jakarta EE 10,他说:
Jakarta EE 10 是一个非常重要的版本。早期的版本,如 9 和 9.1,是必不可少的,然而,从进化或创新方面来看,它们并没有带来任何直接的价值。从根本上来说,这个版本非常重要,因为它带来了一系列长期悬而未决的变更,这些变更在过去几年中都没有真正被使用过,而这种局面正在发生变化。希望我们能继续向前发展,更重要的是,这也某种程度上证明了 Jakarta EE 也可以继续像 Java EE 曾经所做的那样交付特性和创新。
除了 Jakarta EE 10 的发布,Eclipse 基金会还发布了 2022 年 Jakarta EE开发者调查结果,其中包含了以下关键结果:
Jakarta EE 采用率从 2021 年的 47%增加到 2022 年的 53%,而 Spring/Spring Boot 和 MicroProfile 采用率略有下降。
Jakarta EE 社区正在从现有的 Java EE/Jakarta EE 或云供应商那里寻求更快的支持(28%)。
尽管发布不到一年,Java 17(Java SE 的 LTS 版本)的使用率已经飙升到 26%。Java 11 的使用率稳定在 57%(2021 年为 58%)。这反映了企业在密切关注 LTS 版本。
想要评估 Jakarta EE 10 的开发人员可以参考 Jakarta EE 开发者布道者 Ivar Grimstad 的文章和他在 JavaZone 2022 上的演讲,并阅读规范和下载相关的产品。
原文链接:
Jakarta EE 10 Delivers New Core Profile and Updates to Specifications
相关阅读:
Java 近期新闻: NetBeans 15、Jakarta EE 10、jtreg 7、Spring Cloud、Groovy、Helidon 和 Micronaut
评论