自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java EE更名Jakarta EE對程序開發(fā)影響,你知道嗎?

開發(fā) 前端
javax命名空間其實早已成為過去式,畢竟現(xiàn)在已快2024年了。這次Spring團隊也是跟著JDK一起,順勢的完全摒棄掉了javax命名空間,擁抱Jakarta EE。

一、前言

很多Java程序員在使用新版本的Spring6或者springboot3版本的時候,發(fā)現(xiàn)了一些叫jakarta的包。我在閱讀開源工作流引擎camunda源代碼的時候,也發(fā)展了大量jakarta的工程包。

比如:camunda的webapps編譯工程就提供了2種方式javax和jakarta

* `assembly` - Java sources and tests for the Camunda web application based on `javax` namespace.* `assembly-jakarta` - Java sources and tests for the Camunda web application based on `jakarta` namespace.* This module is created from the `assembly` module via code transformation.

網上也有好多同學使用Tomcat時遇到到Jakarta.servlet與javax.servlet包沖突的問題。

Tomcat10中解決eclipse內部Jakarta.servlet與javax.servlet不兼容問題方法:

https://blog.csdn.net/mmmm0584/article/details/115161865

引起以上問題的原因是:Java EE更名為Jakarta EE,javax命名空間變?yōu)閖akarta,javax包名前綴變?yōu)閖akarta。

二、Java EE為什么更名Jakarta EE

2009年4月20日,甲骨文(Oracle)公司和Sun公司今天共同宣布了最終協(xié)議,甲骨文公司將以74億美元收購SUN公司。當時,Sun Microsystems被譽為世界上最具前瞻性的IT公司之一,有能力以開放軟件及硬件為結合,進行全面統(tǒng)一的系統(tǒng),給客戶帶來最大的價值。Oracle收購Sun Microsystems表明,它希望借助Sun Microsystems的關鍵軟件和技術資源,將自身現(xiàn)有的專業(yè)的管理體系,硬件解決方案,及應用程序發(fā)展技術集成在同一個平臺上,從而創(chuàng)建一個更加完善的企業(yè)增值產品和服務。

2018年,Oracle(甲骨文)決定將Java EE移交給開源組織Eclipse基金會,但甲骨文不允許開源組織用Java的名號,于是Eclipse選出了 "Jakarta EE" 和"Enterprise Profile"兩個名字,最終前者勝出。

Eclipse基金會高管Mike Milinkovich表示,7000多人參與了Java EE的更名投票,64%的票數(shù)支持改為Jakarta EE,另有35.6%的票數(shù)支持Enterprise Profile。

Oracle將Java EE(Java SE還自己保留)交給開源組織,Eclipse基金會接手。但Oracle不允許開源組織使用Java名號,所以Jakarta EE名稱于2018.02.26應運而生。Oracle收購了Sun公司,涉及到商標和版權原因,Javax改名為Jakarta迫不得已。

從Java EE到Jakarta EE,企業(yè)版Java、JDK的發(fā)展歷程,參考:

https://cloud.tencent.com/developer/article/1847110

三、Java EE更名Jakarta對軟件影響

Spring Framework作為Java領域最為流行的框架,有非常龐大的用戶群體和項目應用,Java開源框架里絕對的TOP1。我們首先看看Java EE更名Jakarta對Spring Framework的影響。

Spring Framework 6正式發(fā)布,攜JDK 17&Jakarta EE開啟新篇章,Spring Framework為何一躍將JDK的baseline從JDK 8提到JDK 17,以及廢棄javax,啟用全新的jakarta命名空間。Spring Framework 6基于JDK 17構建。換句話講,若想使用Spring Framework 6那么你的JDK環(huán)境最低要求JDK 17。

javax命名空間其實早已成為過去式,畢竟現(xiàn)在已快2024年了。這次Spring團隊也是跟著JDK一起,順勢的完全摒棄掉了javax命名空間,擁抱Jakarta EE。

另外,之前有些內置進JDK里面的Java EE注解,現(xiàn)在也換“包名”啦,如具有代表性的:JSR-330的@Inject、JSR 250的@PostConstruct、@Predestroy以及及其常用的@Resource注解,Resource包名變成了jakarta.annotation.Resource。

從Jakarta EE 9開始,便使用了全新的jakarta.*命名空間。本次建議使用從Jakarta EE 10起步。對應的技術主要有:

Jakarta Servlet 6.0

Jakarta Servlet JSP JSTL 3.0

Jakarta Validation 3.0

Jakarta WebSocket 2.1

Jakarta Persistence 3.1

Jakarta JMS 3.1

Jakarta JSON 2.1

Jakarta JSON Bind 3.0

Jakarta Activation 2.1

Jakarta Mail 2.1

Jakarta Transaction 2.0

Jakarta WS RS 3.1

Jakarta XML SOAP 3.0

Jakarta XML WS 4.0

比如:開發(fā)web程序最常用的servlet,從maven中央倉庫檢索,發(fā)現(xiàn):

servlet4.0.1以前的版本是javax,從4.0.2版本以后均遷移到了jakarta

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>4.0.1</version>

</dependency>

servlet-api從4.0.2版本—6.0.0版本均變成了jakarta.servlet-api

<dependency>

<groupId>jakarta.servlet</groupId>

<artifactId>jakarta.servlet-api</artifactId>

<version>4.0.2</version>

</dependency>

參考文章:https://fangshixiang.blog.csdn.net/article/details/128056207

四、Jakarta EE發(fā)展現(xiàn)狀

打開Jakarta官方網站:https://jakarta.ee/

使用 ENTERPRISE JAVA 為云原生架構構建開源生態(tài)系統(tǒng),最新版本:Jakarta EE 10 現(xiàn)已上市。

Jakarta EE 平臺和配置文件規(guī)范是各個規(guī)范的總括規(guī)范。Jakarta EE 平臺包括大多數(shù)單獨的規(guī)范,而 Profile 規(guī)范包括用于開發(fā) Web 平臺和微服務架構的單個規(guī)范。

我們看看Jakarta的生態(tài),包括 Fujitsu、IBM、Oracle、Red Hat 和 Tomittribe 在內的全球企業(yè) Java 生態(tài)系統(tǒng)領導者正在共同努力,推動 Java EE 和 Jakarta EE 的發(fā)展,以支持將關鍵任務應用程序和工作負載遷移到云中。另外中國開發(fā)應用中間件的企業(yè)也在其中,包括普元、寶蘭德、東方通、金蝶、華宇、亞信等公司。

未來Java項目升級JDK后,可能會涉及到到代碼的升級,官方出了一篇文章:如何升級到 Jakarta EE 10 和 GlassFish 7 – 這比您想象的要容易得多。https://omnifish.ee/2023/05/06/how-to-upgrade-to-jakarta-ee-10-and-glassfish-7/

從舊版本的 Jakarta EE 或 Java EE 升級到 Jakarta EE 10 可能有點棘手,可能需要額外注意細節(jié)。您可能會遇到的主要事情之一是確保現(xiàn)有代碼和庫兼容。某些庫可能仍在使用該軟件包,這可能會導致在嘗試在 Jakarta EE 服務器(如 Eclipse GlassFish 7)上運行應用程序時發(fā)生沖突。您可能還會遇到一些在 Jakarta EE 10 中刪除的已棄用 API 的問題。javax

但別擔心,我們已經為您準備好了!在這篇文章和本系列的未來文章中,我們將解釋您需要了解的所有信息,以成功且?guī)缀趿⒓瓷壍?Jakarta EE 10。

升級到 Jakarta EE 10 或 GlassFish 7 的挑戰(zhàn)分為以下 3 大類:

  • 更改包前綴需要更新對舊包的所有引用javaxjakarta
  • 過時的批注可能需要替換為替代批注
  • 重寫使用已刪除 API 的代碼,這些 API 沒有直接的替代方案

以上所有內容不僅適用于您的代碼庫,也適用于您的應用程序使用的所有依賴項。許多流行的庫已經有與 Jakarta EE 10 兼容的新版本,因此更新它們就足夠了。但有些圖書館可能不支持 Jakarta EE 10,需要進行特殊調整。幸運的是,有一些工具可以在源代碼級別和二進制(字節(jié)碼)級別上自動執(zhí)行此操作。

幸運的是,許多挑戰(zhàn)都可以使用免費和開源工具(如 Openrewrite、WindUp 和 Eclipse Transformer)自動完成。Openrewrite 是一個強大的工具,可以自動更改應用程序的源代碼,例如使用新前綴更新對舊包的所有引用。

以下是雅加達Jakarta 官方調查問卷的統(tǒng)計,雅加達Jakarta的應用情況。

Jakarta EE是用于構建云原生應用程序的頂級框架的基礎。

雅加達Jakarta 構建云原生應用程序的EE使用率從2021年的47%增加到2022年的53%,而Spring/Spring Boot和MicroProfile的使用量有所下降。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2018-03-05 08:59:21

Java 開源Oracle

2019-01-08 16:26:43

Java EEJ2EEJakarta EE

2021-07-05 06:51:44

Java 企業(yè)版編程

2022-02-15 19:50:18

加載器JAVAJDK

2024-08-06 11:27:23

LLM鏈系統(tǒng)AI

2011-06-28 13:43:50

Java EE

2024-05-28 09:12:10

2024-04-07 00:00:00

ESlint命令變量

2009-06-22 17:05:41

Java EEJava企業(yè)應用

2025-01-20 00:00:00

Java語言Record

2023-12-12 08:41:01

2023-12-20 08:23:53

NIO組件非阻塞

2024-04-30 09:02:48

2023-04-26 10:21:04

2023-10-16 23:37:56

2024-04-15 00:04:00

APP開發(fā)

2024-11-20 08:31:49

前端全棧技術

2020-06-18 09:04:59

CC++程序

2021-09-16 10:35:51

JavaJakarta EEEclipse

2023-07-31 07:45:12

Spring項目Jakarta
點贊
收藏

51CTO技術棧公眾號