一文讀懂 Jakarta EE 10 的云原生時代
眾所周知,Go 、Rust 語言已經(jīng)成為云原生的主導開發(fā)語言,雖然 Rust 在市場范圍內(nèi)不及 Go,但其也在努力地擴展自己的市場地位。作為云原生生態(tài)的幸運寵兒,云原生架構(gòu)中大概 63% 的具有核心競爭力的云原生項目基本上都是基于 Go 來構(gòu)建,因此,足以證明其牛逼的地位。
此時,Where is Java ?
背景概述
在探討 Jakarta EE 10 的當下與未來發(fā)展時,Eclipse 基金會 Jakarta EE 工作組發(fā)布 Jakarta EE 10 迎接云原生 Java 時代,即預示著 Java 也要分一杯云原生時代的“羹”。
根據(jù) Eclipse 基金會執(zhí)行董事 Mike Milinkovich 所述,Jakarta EE 10 是在現(xiàn)代微服務和容器時代牢牢嵌入 Jakarta EE 的“終極里程碑版本”,引入了用于構(gòu)建現(xiàn)代、簡化和輕量級云原生 Java 應用程序的功能。Jakarta EE 10 的發(fā)布反映了全球貢獻者社區(qū)的工作戰(zhàn)績,基于此版本,使得 Java 在云原生時代帶來了關鍵創(chuàng)新,奠定了其云原生生態(tài)地位,這對我們行業(yè)的未來至關重要。
據(jù)發(fā)布的一項關于 2022 年 Jakarta EE 開發(fā)人員調(diào)查的報告,其結(jié)果顯示了 Java 企業(yè)標準在新的云原生應用程序和微服務開發(fā)中的使用越來越多。2022 年 3 月 9 日至 5 月 6 日期間,共有來自世界各地的 1,439 名 Java 開發(fā)人員做出了回應,其中 53% 表示他們使用 Jakarta EE 作為其云原生應用程序開發(fā)框架的基礎。
雖然與 2021 年相比,Jakarta EE 的使用量增加了 6%,但 Spring/Spring Boot、MicroProfile 和 Micronaut 等其他框架的使用量略有下降。然而,Spring/Spring Boot 仍然是最流行的 Java 企業(yè)框架,占所有提及的 57%。根據(jù)官方報告,Spring Boot 與 Jakarta EE 沒有競爭力,因為它依賴 Jakarta EE 開發(fā),兩者都是健康的企業(yè) Java 生態(tài)系統(tǒng)的重要組成部分。
其實,從本質(zhì)上來講,在這個激烈的市場競爭中,尤其是云原生時代的生態(tài)環(huán)境下,面對 Go、Rust 等語言 2 大高手,Jakarta EE 可能心里面很迫切地希望能夠搶回屬于自己的那一份?;谠圃鷳B(tài)中最火熱的容器化技術的蓬勃發(fā)展,因此,與 Kubernetes 容器編排平臺的本地集成以及更好地支持微服務或許是其發(fā)展規(guī)劃中的首要核心任務。然而,雖然去年調(diào)查參與者仍然希望加快創(chuàng)新步伐,但現(xiàn)在的重點是現(xiàn)有云平臺和 Java EE/Jakarta EE 供應商更快地提供支持,以便獲得市場份額。
Jakarta EE 10 功能特性
誠然,Jakarta EE 10 給自己的定位是開放的、社區(qū)驅(qū)動的創(chuàng)新以及推動云原生 Java 技術的未來。光吹牛逼壓根沒有卵用,那么,它到底具備哪些硬核呢?接下來,我們來了解一下 Jakarta EE 10 的特征與優(yōu)勢,具體如下所示。
正如上文所述,Jakarta EE 10 主要包含用于構(gòu)建現(xiàn)代化、簡化和輕量級云原生 Java 應用程序的新功能。這個新的創(chuàng)新社區(qū)驅(qū)動版本專為希望開始開發(fā)新的企業(yè) Java 應用程序或改進其現(xiàn)有應用程序的組織而設計。
1、現(xiàn)代化
Jakarta EE 10 版本在 20 多個組件規(guī)范中提供了新功能。
此版本能夠使現(xiàn)代云原生 Java 應用程序的構(gòu)建者能夠在 Java SE 11 和 Java SE 17(Java SE 的最新 LTS 版本)上開發(fā)和部署 Jakarta EE 10 應用程序。這允許開發(fā)人員充分利用新功能,包括 Java SE 9 中引入并在 Java SE 11 中支持的模塊化系統(tǒng)等。
2、簡單化
基于 Jakarta EE 10,通過支持更廣泛地使用附加注釋,使得應用程序開發(fā)變得更為簡單、高效。
這使得構(gòu)建模塊化應用程序變得更加容易,并提供了跨組件 API 的改進集成。最終,Jakarta EE 10 可幫助開發(fā)人員更輕松地實施具有現(xiàn)代安全要求的應用程序,剔除已棄用的 API,并保持與之前 Jakarta EE 版本的高度兼容性。
3、輕量級
Jakarta EE 10 基于 Jakarta EE 核心配置文件定義了一個新的配置文件規(guī)范。“核心配置文件”為現(xiàn)代化的輕量級 Java 應用程序和微服務定義了一個多供應商平臺。
新的 Core Profile 提供了 Jakarta EE 規(guī)范的一個子集,其目標是適用于具有輕量級運行時的微服務開發(fā)的較小運行時。這包括用于構(gòu)建輕量級 Jakarta EE 應用程序的創(chuàng)新的新 CDI-Lite 規(guī)范。
Jakarta EE 10 規(guī)格
Jakarta EE 10 生態(tài)規(guī)格如下所示:
Jakarta EE 10 在 20 多個規(guī)范中提供了值得注意的 API 升級,并添加了全球社區(qū)用戶所期望的核心功能。所涉及的優(yōu)化及改進如下所示:
1、Jakarta 上下文和依賴注入 (CDI) 4.0,包括支持構(gòu)建時間擴展的 CDI-Lite;
2、支持 OpenID Connect 的 Jakarta Security 3.0;
3、Jakarta Servlet 6.0 用于簡化編程和提高安全性;
4、Jakarta Faces (JSF) 4.0 具備使用 CDI 的現(xiàn)代化 API;
5、Jakarta JSON Binding (JSON-B) 3.0 新增了對多態(tài)類型的支持;
6、Jakarta RESTful Web 服務標準化了 Java SE Bootstrap API 和對 multipart/form-data 的標準支持;
7、Jakarta Persistence 將 UUID 標準化為基本類型并擴展查詢語言和查詢 API;
8、Jakarta Concurrency 3.0 移至 Web Profile 并增強了應用程序可用的并行和反應式編程模型;
除此之外,在構(gòu)建現(xiàn)代化云原生 Java 應用程序方面,Jakarta EE 10 版本能夠:
1、在 Java SE 11 和 Java SE 17(Java SE 的最新 LTS 版本)上開發(fā)和部署 Jakarta EE 10 應用程序;
2、利用 Java SE 9 中引入并在 Java SE 11 中支持的模塊系統(tǒng)等新功能此版本通過支持更廣泛地使用附加注釋來簡化應用程序開發(fā)。這使得構(gòu)建模塊化應用程序變得更加容易,并提供了跨組件 API 的改進集成。
最終,此版本可幫助開發(fā)人員更輕松地實現(xiàn)具有現(xiàn)代安全要求的應用程序并刪除已棄用的 API,同時還保持與之前 Jakarta EE 版本的高度兼容性。
除了這些增強功能之外,還有越來越多的兼容產(chǎn)品列表來支持本已豐富的生態(tài)系統(tǒng)。例如,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 兼容產(chǎn)品。一旦該版本可用,Jakarta EE 10 兼容實現(xiàn)和產(chǎn)品的列表預計將迅速增長,從而奠定其云原生時代的市場地位。
Jakarta EE 10 的發(fā)布是其作為云原生 Java 創(chuàng)新平臺發(fā)展的重大飛躍,真誠地期望 Jakarta EE 在云原生時代能夠發(fā)揮其關鍵作用,引領整個生態(tài)穩(wěn)步前行。