一文讀懂 Jakarta EE 10 的云原生時代
眾所周知,Go 、Rust 語言已經成為云原生的主導開發語言,雖然 Rust 在市場范圍內不及 Go,但其也在努力地擴展自己的市場地位。作為云原生生態的幸運寵兒,云原生架構中大概 63% 的具有核心競爭力的云原生項目基本上都是基于 Go 來構建,因此,足以證明其牛逼的地位。

此時,Where is Java ?
背景概述
在探討 Jakarta EE 10 的當下與未來發展時,Eclipse 基金會 Jakarta EE 工作組發布 Jakarta EE 10 迎接云原生 Java 時代,即預示著 Java 也要分一杯云原生時代的“羹”。
根據 Eclipse 基金會執行董事 Mike Milinkovich 所述,Jakarta EE 10 是在現代微服務和容器時代牢牢嵌入 Jakarta EE 的“終極里程碑版本”,引入了用于構建現代、簡化和輕量級云原生 Java 應用程序的功能。Jakarta EE 10 的發布反映了全球貢獻者社區的工作戰績,基于此版本,使得 Java 在云原生時代帶來了關鍵創新,奠定了其云原生生態地位,這對我們行業的未來至關重要。

據發布的一項關于 2022 年 Jakarta EE 開發人員調查的報告,其結果顯示了 Java 企業標準在新的云原生應用程序和微服務開發中的使用越來越多。2022 年 3 月 9 日至 5 月 6 日期間,共有來自世界各地的 1,439 名 Java 開發人員做出了回應,其中 53% 表示他們使用 Jakarta EE 作為其云原生應用程序開發框架的基礎。
雖然與 2021 年相比,Jakarta EE 的使用量增加了 6%,但 Spring/Spring Boot、MicroProfile 和 Micronaut 等其他框架的使用量略有下降。然而,Spring/Spring Boot 仍然是最流行的 Java 企業框架,占所有提及的 57%。根據官方報告,Spring Boot 與 Jakarta EE 沒有競爭力,因為它依賴 Jakarta EE 開發,兩者都是健康的企業 Java 生態系統的重要組成部分。

其實,從本質上來講,在這個激烈的市場競爭中,尤其是云原生時代的生態環境下,面對 Go、Rust 等語言 2 大高手,Jakarta EE 可能心里面很迫切地希望能夠搶回屬于自己的那一份。基于云原生生態中最火熱的容器化技術的蓬勃發展,因此,與 Kubernetes 容器編排平臺的本地集成以及更好地支持微服務或許是其發展規劃中的首要核心任務。然而,雖然去年調查參與者仍然希望加快創新步伐,但現在的重點是現有云平臺和 Java EE/Jakarta EE 供應商更快地提供支持,以便獲得市場份額。
Jakarta EE 10 功能特性
誠然,Jakarta EE 10 給自己的定位是開放的、社區驅動的創新以及推動云原生 Java 技術的未來。光吹牛逼壓根沒有卵用,那么,它到底具備哪些硬核呢?接下來,我們來了解一下 Jakarta EE 10 的特征與優勢,具體如下所示。
正如上文所述,Jakarta EE 10 主要包含用于構建現代化、簡化和輕量級云原生 Java 應用程序的新功能。這個新的創新社區驅動版本專為希望開始開發新的企業 Java 應用程序或改進其現有應用程序的組織而設計。
1、現代化
Jakarta EE 10 版本在 20 多個組件規范中提供了新功能。
此版本能夠使現代云原生 Java 應用程序的構建者能夠在 Java SE 11 和 Java SE 17(Java SE 的最新 LTS 版本)上開發和部署 Jakarta EE 10 應用程序。這允許開發人員充分利用新功能,包括 Java SE 9 中引入并在 Java SE 11 中支持的模塊化系統等。
2、簡單化
基于 Jakarta EE 10,通過支持更廣泛地使用附加注釋,使得應用程序開發變得更為簡單、高效。
這使得構建模塊化應用程序變得更加容易,并提供了跨組件 API 的改進集成。最終,Jakarta EE 10 可幫助開發人員更輕松地實施具有現代安全要求的應用程序,剔除已棄用的 API,并保持與之前 Jakarta EE 版本的高度兼容性。
3、輕量級
Jakarta EE 10 基于 Jakarta EE 核心配置文件定義了一個新的配置文件規范。“核心配置文件”為現代化的輕量級 Java 應用程序和微服務定義了一個多供應商平臺。
新的 Core Profile 提供了 Jakarta EE 規范的一個子集,其目標是適用于具有輕量級運行時的微服務開發的較小運行時。這包括用于構建輕量級 Jakarta EE 應用程序的創新的新 CDI-Lite 規范。
Jakarta EE 10 規格
Jakarta EE 10 生態規格如下所示:

Jakarta EE 10 在 20 多個規范中提供了值得注意的 API 升級,并添加了全球社區用戶所期望的核心功能。所涉及的優化及改進如下所示:
1、Jakarta 上下文和依賴注入 (CDI) 4.0,包括支持構建時間擴展的 CDI-Lite;
2、支持 OpenID Connect 的 Jakarta Security 3.0;
3、Jakarta Servlet 6.0 用于簡化編程和提高安全性;
4、Jakarta Faces (JSF) 4.0 具備使用 CDI 的現代化 API;
5、Jakarta JSON Binding (JSON-B) 3.0 新增了對多態類型的支持;
6、Jakarta RESTful Web 服務標準化了 Java SE Bootstrap API 和對 multipart/form-data 的標準支持;
7、Jakarta Persistence 將 UUID 標準化為基本類型并擴展查詢語言和查詢 API;
8、Jakarta Concurrency 3.0 移至 Web Profile 并增強了應用程序可用的并行和反應式編程模型;
除此之外,在構建現代化云原生 Java 應用程序方面,Jakarta EE 10 版本能夠:
1、在 Java SE 11 和 Java SE 17(Java SE 的最新 LTS 版本)上開發和部署 Jakarta EE 10 應用程序;
2、利用 Java SE 9 中引入并在 Java SE 11 中支持的模塊系統等新功能此版本通過支持更廣泛地使用附加注釋來簡化應用程序開發。這使得構建模塊化應用程序變得更加容易,并提供了跨組件 API 的改進集成。
最終,此版本可幫助開發人員更輕松地實現具有現代安全要求的應用程序并刪除已棄用的 API,同時還保持與之前 Jakarta EE 版本的高度兼容性。
除了這些增強功能之外,還有越來越多的兼容產品列表來支持本已豐富的生態系統。例如,Eclipse GlassFish 7、Open Liberty、22.0.0.10-beta 和 Wild Fly 27.0.0 今天都在提供兼容版本。富士通、IBM、甲骨文、Payara、Red Hat 和 Tomitribe 等 Jakarta EE 工作組的成員正在努力認證 Jakarta EE 10 兼容產品。一旦該版本可用,Jakarta EE 10 兼容實現和產品的列表預計將迅速增長,從而奠定其云原生時代的市場地位。
Jakarta EE 10 的發布是其作為云原生 Java 創新平臺發展的重大飛躍,真誠地期望 Jakarta EE 在云原生時代能夠發揮其關鍵作用,引領整個生態穩步前行。

































