新聞中心
1. 引言

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)公司推出龍巖免費(fèi)做網(wǎng)站回饋大家。
聽說(shuō)過(guò) Java EE 嗎?那關(guān)于 Java 2 EE 、J2EE 或者現(xiàn)在的 Jakarta EE,你又是否有所耳聞呢?實(shí)際上,這些各異的術(shù)語(yǔ)描述的都是相同的東西:由 Java SE 擴(kuò)展出的一系列企業(yè)規(guī)范。
在本篇短文中,我們將講述 Java EE 的發(fā)展史。
2. 歷史
在 Java 的***個(gè)版本中,Java 企業(yè)擴(kuò)展還只是核心 JDK 的一部分(譯者注:核心 JDK 通常指 Java SE) 。然而到了 1999 年,Java 企業(yè)擴(kuò)展已經(jīng)被剝離出 Java SE,成為了 Java 2 的一部分,這也意味著 J2EE,或者說(shuō)Java 2 平臺(tái)企業(yè)版(Java 2 Platform Enterprise Edition)的誕生。J2EE 這個(gè)稱呼一直維持到2006年。
2006 年發(fā)布的 Java 5,J2EE 被重命名為 Java EE,或者說(shuō) Java 平臺(tái)企業(yè)版(Java Platform Enterprise Edition)。這次改名后的稱呼一直延續(xù)到 了 2017 年的 9 月。那年發(fā)生了一件重大的事,Oracle 決定將 Java EE 捐贈(zèng)給 Eclipse 基金會(huì)(但 Java仍然屬于 Oracle)。
3. 轉(zhuǎn)變?cè)?/strong>
事實(shí)上,因?yàn)?Oracle 擁有 “Java” 商標(biāo)權(quán)。按照法律要求,Eclipse 基金會(huì)需要對(duì) Java EE 進(jìn)行更名。
經(jīng)過(guò)社區(qū)的投票選擇,Java EE 被更名為 Jakarta EE。從某種意義上來(lái)說(shuō),Java EE 依然叫 JEE。(譯者注: 將 Java EE 首字母縮寫也可簡(jiǎn)稱為 JEE)。
不過(guò)這仍然是個(gè)正在進(jìn)行的故事,還未完全塵埃落定。
舉個(gè)例子,雖然 Oracle 開源了 Java 源代碼,但卻并未開源所有的文檔。關(guān)于這個(gè)問(wèn)題,因?yàn)樯婕暗揭恍┓墒乱?,?dǎo)致開源一些文檔(例如與 JMS、EJB相關(guān)的)非常棘手,至今仍有許多爭(zhēng)議。
現(xiàn)在還無(wú)法得知新的 Eclipse 基金會(huì)文檔是否能夠參考原文檔。
同樣令人奇怪的是 Eclipse 基金會(huì)不能使用 javax 的命名空間來(lái)創(chuàng)建新的 Java 包,但是可以在現(xiàn)有包的下面創(chuàng)建新的類和子類。
轉(zhuǎn)變階段也意味著對(duì) Jakarta EE 添加規(guī)范的新流程。為了更好地理解這一點(diǎn),讓我們快速看一下 Oracle 添加規(guī)范的流程以及 Eclipse 基金會(huì)相應(yīng)做出的改變。
4.未來(lái)
在過(guò)去,為了將一個(gè)特性添加進(jìn) “EE”(譯者注:原文作者為了避免 Jakarta EE 歷史名字的混雜性,使用“EE”來(lái)代指全部的版本,下同),我們需要 3 樣?xùn)|西 :規(guī)范、參考實(shí)現(xiàn)與測(cè)試。社區(qū)里的任何人都可以提交這 3 樣?xùn)|西,之后執(zhí)行委員會(huì)將會(huì)決定何時(shí)將它們整合進(jìn) Java 語(yǔ)言中。
為了更好地理解添加規(guī)范的舊流程,讓我們進(jìn)一步了解 JSRs、Glassfish 和 TCK是什么 ,以及它們是如何整合新特性的。
我們也將一睹在未來(lái)可以預(yù)期的事。
4.1 JCP 以及現(xiàn)在的 EFSP
在過(guò)去,產(chǎn)生EE 新特性的流程被稱為 JCP(Java Community Process)。
Java SE 現(xiàn)在仍然采用 JCP。但是由于 EE 的所有權(quán)已經(jīng)從 Oracle 移交至 Eclipse 基金會(huì),EE 已經(jīng)有了新的流程,這個(gè)流程是Eclipse 開發(fā)流程的擴(kuò)展,與 Java SE 的流程互不干擾,我們稱之為 EFSP(Eclipse Foundation Specification Process)。
盡管 JCP 與 EFSP 之間有一些大的差異,但大都圍繞著“透明、公開、集體負(fù)責(zé)和供應(yīng)商中立”這幾條準(zhǔn)則展開。例如,EFSP 的組織者設(shè)想的合作工作團(tuán)體是供應(yīng)商中立的,認(rèn)證流程是自助服務(wù)的,組織的運(yùn)作與管理是精英化的。
4.2 JSRs
在 JCP 中,為 EE 添加新特性的***步是創(chuàng)建一個(gè) JSR(Java Specification Request)。JSR 有點(diǎn)類似于一個(gè) EE 特性的接口。JCP 執(zhí)行委員會(huì)會(huì)核準(zhǔn)一個(gè)完整的 JSR,然后相應(yīng)的 JSR 貢獻(xiàn)者會(huì)編寫代碼,使其在社區(qū)內(nèi)生效。
JSR-339 或者 JAX-RS 對(duì)于闡述上面的流程是一個(gè)好例子。JAX-RS 最初于 2011 年提出,在2012年被 JCP 批準(zhǔn),最終在 2013 年得以發(fā)布。
雖然在討論規(guī)范時(shí),社區(qū)可以隨時(shí)加入進(jìn)來(lái),但時(shí)間表明,一個(gè)實(shí)現(xiàn)優(yōu)先( implementation-first)的方式更利于創(chuàng)建能被廣泛接受的特性與 API。所謂的實(shí)現(xiàn)優(yōu)先,類似于JSR 310中的 java.time 和 Joda Time這個(gè)例子(譯者注:JDK 1.8 之前 Java 關(guān)于時(shí)間的 API 很不如人意,使用廣泛的是 Joda-Tme)。
因此,EFSP(Eclipse Foundation Specification Process)在其設(shè)定的目標(biāo)中闡述了這個(gè)觀點(diǎn):“EFSP 將基于是否先進(jìn)行了動(dòng)手實(shí)驗(yàn)和編碼,來(lái)判斷其是否值得添加進(jìn)規(guī)范中。
4.3 GlassFish
此外,JSR 作為 JCP 的一部分,需要一個(gè)參考實(shí)現(xiàn)。這有點(diǎn)類似于實(shí)現(xiàn)接口的類。對(duì)于那些想要?jiǎng)?chuàng)建自己的規(guī)范實(shí)現(xiàn)的群體,比如說(shuō)兼容庫(kù)的開發(fā)人員或者其他組織,參考實(shí)現(xiàn)都可以給予幫助。
對(duì)于 Java EE 特性,JCP 使用 Glassfish 作為參考實(shí)現(xiàn)。
雖然 Glassfish 的中心化簡(jiǎn)化了實(shí)現(xiàn)者的探索過(guò)程,但是這種中心化也要求更多的管理,并且傾向于偏袒某個(gè)供應(yīng)商。
因此,EFSP 不要求參考實(shí)現(xiàn),而只要求兼容的實(shí)現(xiàn)。簡(jiǎn)而言之,這種微妙的變化使得類似 Glassfish 之類的中心體系結(jié)構(gòu)內(nèi)的實(shí)現(xiàn),不會(huì)被基金會(huì)無(wú)緣由地***。
4.4 TCK
***,JCP 要求 EE 特性需通過(guò) TCK(Technology Compatibility Kit)的測(cè)試。
TCK 是一組驗(yàn)證特定 EE JSR 的測(cè)試。簡(jiǎn)而言之,為了遵循 Java EE,應(yīng)用服務(wù)器需要實(shí)現(xiàn)所有 JSR, 并通過(guò)特定 TCK 上的所有測(cè)試。
與前述類似,Oracle雖然開源了TCK和EE jsr的源代碼(譯者注:但并沒有開源相應(yīng)的文檔)。當(dāng)然,未來(lái)所有的文檔和 TCK 都將是開源的。
5. 總結(jié)
這些年來(lái),Java EE 無(wú)疑前進(jìn)了許多。很高興看到它繼續(xù)變化與變好。
前方之路充滿坎坷,希望 Java 的轉(zhuǎn)變能夠平滑些。
分享名稱:小白科普:JavaEEvsJ2EEvsJakartaEE
網(wǎng)站URL:http://m.fisionsoft.com.cn/article/cdgisip.html


咨詢
建站咨詢
