從Java EE到Jakarta EE冠场,企業(yè)版Java的發(fā)展歷程(建議收藏)

?前言

誕生于1985年的Java語言,早已年過三旬本砰,甚至已經(jīng)越過“35歲魔咒”碴裙,比很多同學的年齡大得多。正所謂三十年河東点额,三十年河西舔株,有人說Java已廉頗老矣,基本結構過于老套不靈活还棱,但顯示情況是它“老而不死”依舊常年霸榜载慈,是棵常青樹。

深愛Java的同學知道珍手,Java并不老(Python年紀更大)办铡、開發(fā)效率并不低(馬拉松型選手看中長遠效率)、語法并不是啰嗦(這是嚴謹?shù)谋憩F(xiàn)琳要,同時也擁抱了Stream流式寡具、Function函數(shù)式編程來簡化開發(fā))。Java鼓勵用嚴謹?shù)姆椒ㄖ刹埂⒄_的方式來設置內(nèi)容童叠,這讓Java程序員們對待代碼更有全局性,更適合構建規(guī)模性的企業(yè)級項目孔厉。

另外拯钻,Java做到了哪怕最新版JDK能(幾乎)100%兼容首個版本帖努,這無不依靠于優(yōu)秀的設計和規(guī)范的制定撰豺。2000年左右隨著Java的高速發(fā)展粪般,被大量用于企業(yè)應用的開發(fā),所以迫切需要規(guī)范的解決方案污桦。

正所謂一流企業(yè)定標準亩歹、二流企業(yè)做品牌、三流企業(yè)做產(chǎn)品褐着,這個活Sun公司自然不會放過饺蚊,它就是企業(yè)版Java砾淌,也叫Java EE(后改名為Jakarta EE)。Java EE是一系列技術標準的集合(只定標準顾稀,不提供實現(xiàn)),其中很多技術經(jīng)歷這么多年的發(fā)展已經(jīng)很成熟坝撑、應用得很廣泛了静秆。但深入了解后會發(fā)現(xiàn),Java EE很多技術都是起個大早巡李,趕個晚集抚笔,否則也不會有Spring現(xiàn)在的絕對霸主地位。

點撥-Java EE

本文提綱

版本約定

Java EE:6侨拦、7殊橙、8

Jakarta EE:8、9狱从、9.1

?正文

上面說到膨蛮,Java能夠歷久彌新得益于它是非常嚴謹?shù)摹⒆⒅鼐幋a規(guī)范季研、注重設計規(guī)范的編程語言鸽疾。按照規(guī)范實施做到有據(jù)可循,實施過程又可反饋給規(guī)范训貌,形成正反饋的周而復始制肮,越來越完善。

本專欄將介紹Java EE/Jakarta EE相關的幾十種技術递沪,作為Java企業(yè)級開發(fā)的標準技術豺鼻,很多技術應用非常廣泛。本文作為第一篇款慨,將從發(fā)展歷程出發(fā)儒飒,先一起全方位地了解到它。

JDK發(fā)展簡史

在講述Java EE的發(fā)展歷程之前檩奠,先簡要回顧(普及)一下JDK的發(fā)展史桩了,方便在時間上對應參照附帽,畢竟開發(fā)者一般對JDK的版本會更熟、更敏感些井誉。

誕生:1995年5月蕉扮,Oak語言改名為Java,標志著Java的誕生颗圣,并且提出了著名的?Write Once,Run Anywhere?口號喳钟。下面用表格形式記錄其發(fā)版時間軸

版本發(fā)布日期焦點說明

JDK 1.01996.01Java虛擬機、基礎類庫

JDK 1.11997.02規(guī)定了Jar文件格式在岂,JDBC奔则、JavaBeans、RMI等蔽午。開始支持內(nèi)部類和反射

JDK 1.21998.12引入集合框架Collections易茬、Map等。從此版本開始及老,分為3個版本:J2SE/J2EE/J2ME(注:1999.04著名的HotSpot虛擬機誕生抽莱,順勢推出了Java EE首個版本)

JDK 1.32000.05千禧年的第一個版本,對類庫進行了優(yōu)化

JDK 1.42002.02支持正則Pattern写半、NIO岸蜗、JDBC 3.0、assert斷言

JDK 52004.09JDK命名方式變化叠蝇、自動拆裝箱璃岳、泛型、枚舉悔捶、可變參數(shù)铃慷、增強for循環(huán)、JUC并發(fā)包 等等非常多新特性

JDK 62006.12編譯器注解處理器(lombok的原理)蜕该、J2xx改為Java XX

JDK 72009.02try-with-resources犁柜、NIO2(也叫AIO)、泛型推斷

JDK 82014.03憋了5年的大招堂淡,果然經(jīng)典馋缅。 Lambda表達式、函數(shù)式編程绢淀、Stream流式編程萤悴、方法引用、接口默認方法皆的、徹底移除HotSpot的永久代

.........

JDK 112018.09Jigsaw模塊化覆履、增強類型推斷、革命性的垃圾收集器ZGC

.........

JDK 172021.09...敬請期待

期間,關于Java/Sun公司有些大事記硝全,記錄一下

日期事件

1995.05Java語言誕生

1996.01JDK 1.0版本發(fā)布

1998.12JAVA2企業(yè)平臺J2EE發(fā)布(和JDK 1.2一起)

2005.06JavaOne大會召開(Java誕生10周年)栖雾,J2EE更名為Java EE, J2SE更名為Java SE,J2ME更名為Java ME

2009.04甲骨文Oracle以現(xiàn)金收購Sun微系統(tǒng)公司伟众,交易價格74億美元 (Sun公司市值頂峰時超2000億美金析藕。眼看他起高樓,眼看他宴賓客赂鲤,眼看他樓塌了)噪径。Sun公司最大的資產(chǎn)柱恤,便是Java数初。從此Java商標被Oracle收入囊中,才有了后來的Oracle PK Google大戰(zhàn)

2017.08Oracle將Java EE(Java SE還自己保留)交給開源組織梗顺,Eclipse基金會接手泡孩。但Oracle不允許開源組織使用Java名號,所以Jakarta EE名稱于2018.02.26應運而生

什么是Java EE寺谤?

作為一個(資深)的Java開發(fā)者仑鸥,這似乎是一個很簡單的問題。

Java是一種可以撰寫跨平臺應用軟件的面向?qū)ο蟮某绦蛟O計語言变屁。它分為三個版本:

Java SE(J2SE):標準版眼俊。基礎中的基礎粟关,后面2個版本都依賴于它疮胖。當前最新版本是Java 17(LTS版本,將于2021年9月發(fā)布)

Java EE(J2EE):企業(yè)版闷板。用于企業(yè)級大型應用開發(fā)澎灸,包含了Web、Security遮晚、Management等幾十種標準技術

Java ME(J2ME):移動版性昭。隨著Android/iOS的流行,它已幾乎銷聲匿跡

由于Java EE能夠直接應用于企業(yè)級應用開發(fā)县遣,解決實際問題糜颠,直接產(chǎn)生價值,因此也常說它價值更高萧求。所以用谷歌百度一下“Java培訓”關鍵字其兴,基本都是培訓Java EE的。

作為common sense饭聚,特別是Java程序員除了需對JDK的歷史有所了解外忌警,Java EE的發(fā)展歷程也是有必要知道的,畢竟這是基礎知識點,是聊天的談資法绵,是你的內(nèi)功箕速。

Java EE發(fā)展史

J2EE(JavaEE)自1999年首次發(fā)布以來,已成為實現(xiàn)和部署可移植朋譬、多層企業(yè)應用程序的集成標準(它是標準盐茎,它是規(guī)范),現(xiàn)在了解下它的發(fā)展史徙赢,記錄到如下表格(總成體系的Java EE 1.4版本開始)字柠。

說明:該表格是YourBatman翻閱多處資料搜集整合,全網(wǎng)最全的一份狡赐,請收藏使用窑业。轉(zhuǎn)載請注明出處

版本發(fā)布日期焦點說明

J2EE 1.42003.12對Web服務更好支持。啟用javax命名空間枕屉。Servlet 2.4常柄、JSP 2.0、EJB 2.1等

Java EE 52006.05以Web為著力點繼續(xù)優(yōu)化搀擂。Servlet 2.5西潘、JSP 2.1、EJB 3.0哨颂、注解支持等

Java EE 62009.12添加了大量新技術來簡化開發(fā)喷市,如:Servlet 3.0(異步處理)、Bean Validation威恼、EJB 3.1品姓、JSF 2.0、JPA 2.0沃测、上下文和依賴注入(CDI)

Java EE 72013.06提高生產(chǎn)力滿足企業(yè)需求和HTML5缭黔。Servlet 3.1、WebSocket 1.0蒂破、JSON 1.0馏谨、JMX 2.0、Batch 1.0

Java EE 82017.08增加了JSON綁定和安全相關附迷。Servlet 4.0惧互、Bean Validation 2.0、CDI 2.0喇伯、JPA 2.2

Jakarta EE入局2017.08Oracle將Java EE交給開源組織喊儡,Eclipse基金會接手(Apache基金會爆冷出局還是不想要?)稻据。但Oracle不允許開源組織使用Java名號艾猜,所以Jakarta EE名稱于2018.02.26應運而生

Jakarta EE 82019.09規(guī)范與Java EE 8完全相同。Maven的GAV變了:

javax.servlet:javax.servlet-api:4.0.1 ->jakarta.servlet:jakarta.servlet-api:4.0.2?,但命名空間沒變依舊還是javax.*匆赃,算是個小過度吧

Jakarta EE 92020.11沒有加入新功能淤毛,Eclipse基金會的首個正式版本。命名空間從javax.*?遷移到?jakarta.*?算柳,前者從此成為歷史低淡。所有模塊大版本號+1,如?Servlet 4.0.2 -> Servlet 5?以表示其斷層式升級

Jakarta EE 9.12021.06相較于9沒有加入新API瞬项。主要提供對Java SE 11的運行支持

2017年隨著Oracle把Java EE交給開源基金會蔗蹋,Java EE從此成為歷史,接下來將由社區(qū)驅(qū)動的Jakarta EE取而代之囱淋。

雖然Java EE已成過去式猪杭,但它似乎代表著我們的程序青春,依然是溝通的主力绎橘。因此胁孙,在很長很長很長一段時間內(nèi)唠倦,Java EE知名度依舊蓋過Jakarta EE称鳞,溝通交流中使用它居多。

Tips:Java EE版本號和Java SE沒有絕對聯(lián)系稠鼻。如即使到最新的Jakarta EE 9冈止、9.1版本對JDK的最低要求是8,而非9

咱們程序員可能會吐槽Oracle為毛不讓使用Java EE商標候齿,這么搞太費勁了熙暴。但在Oracle眼中,可能慌盯,一切都是利益(Oracle號稱是一個律師比工程師數(shù)量還多的高科技企業(yè))

補充:什么是Eclipse基金會

2004年2月該非盈利組織的正式成立周霉,由包括開發(fā)者、消費者和插件提供商在內(nèi)的各獨立團體組成的董事會亚皂,為Eclipse的長期發(fā)展負責俱箱,它就是Eclipse基金會。

該基金會最初只有19個開源項目灭必,現(xiàn)在有300+個之多狞谱,我們比較熟悉的就有:

Java開發(fā)工具:功能強大的Java開發(fā)IDE Eclipse

眾多Jakarta項目:Jakarta Annotations、Jakarta Bean Validation禁漓、Jakarta JSON Processing等等

Vert.X:一個面向現(xiàn)代web和企業(yè)的異步應用框架跟衅,一個可能會撼動Spring地位的全家桶框架

另外,可把Eclipse基金會和Apache基金會對照著看播歼,程序員對后者理應更熟悉些伶跷。

什么是Jakarta EE

該名稱的由來和兩個大事記有關:

為了讓Java EE更開放,Oracle決定為它尋找一個新東家(呵呵,我笑而不語)叭莫。2017年8月磷支,Oracle將Java EE交給開源組織,Eclipse基金會接手(Apache爆冷出局還是不想要食寡?)

Oracle拒絕讓基金會繼續(xù)使用Java名字雾狈,因此Eclipse做了一項名義調(diào)查,從Jakarta EE和Enterprise Profile兩個名稱中二選一抵皱,前者大比例勝出善榛。所以在2018年3月份,Eclipse宣布正式將Java EE更名為Jakarta EE呻畸,并且確定了logo(如上圖)移盆。另外,跟著更名的還有一些和Java EE緊密相關的名詞伤为,如Glassfish -> Eclipse Glassfish咒循;JCP -> EE.next;ODM(Oracle Development Management) -> PMC

總而言之:Jakarta EE你可認為它(的內(nèi)容)就是Java EE绞愚,只是名字換了叙甸,老東家換了。之前由JCP來推動它的發(fā)展位衩,以后將有開源社區(qū)推動裆蒸。至于前景如何,咱們拭目以待糖驴。

Jakarta EE發(fā)展史

Jakarta EE還很年輕僚祷,2017年8月從Oracle手中接棒過來算起,也不過4歲贮缕,談不上什么發(fā)展史辙谜,是好是壞周期太短也不能早下定論。截止到目前感昼,共發(fā)布了三個版本装哆,內(nèi)容幾乎沒有變化,只在命名空間抑诸、版本號方面稍有改變烂琴,記錄如下:

版本發(fā)布日期焦點說明

Jakarta EE 82019.09規(guī)范與Java EE 8完全相同。Maven的GAV變了:

javax.servlet:javax.servlet-api:4.0.1 ->jakarta.servlet:jakarta.servlet-api:4.0.2?蜕乡,但命名空間沒變依舊還是javax.*奸绷,算是個小過度吧

Jakarta EE 92020.11沒有加入新功能,Eclipse基金會的首個正式版本层玲。命名空間從javax.*?遷移到?jakarta.*?号醉,前者從此成為歷史反症。所有模塊大版本號+1,如?Servlet 4.0.2 -> Servlet 5?以表示其斷層式升級

Jakarta EE 9.12021.06相較于9沒有加入新API畔派。主要提供對Java SE 11的運行支持

一站式聚合API

如你所知铅碍,Java EE/Jakarta EE是幾十種技術(規(guī)范)的幾何,幾乎每種技術都有其API(對應一個Jar)线椰,為了方便總攬全局胞谈,Java EE自6版起提供了一站式聚合API,導入一個就夠了:

<dependency>

? <groupId>javax</groupId>

? ? <artifactId>javaee-api</artifactId>

? ? <version>6.0.0</version>

? ? <scope>provided</scope>

</dependency>

<!-- Jakarta命名空間版本 -->

<dependency>

? ? <groupId>jakarta.platform</groupId>

? ? <artifactId>jakarta.jakartaee-api</artifactId>

? ? <version>9.1.0</version>

? ? <scope>provided</scope>

</dependency>

效果如下:

特別注意:實際工作中不建議使用這種粗暴的憨愉、大而全的導入方案烦绳,而是應該按需導入精確把握,還classpath一片“干凈”配紫,并且也能做到心中有數(shù)径密,方可運籌帷幄。

有Java EE SDK嗎躺孝?

既然Java SE有JDK享扔,那么Java EE是否也有SDK呢?答案:有的植袍。Oracle官網(wǎng)/Jakarta EE官網(wǎng)均提供了SDK供以下載:

https://www.oracle.com/java/technologies/javaee-8-sdk-downloads.html

只不過此SDK可能讓你失望了惧眠,它不是傳統(tǒng)的軟件開發(fā)工具包,而更像是一個技術合集奋单,并且和自家的Glassfish強綁定锉试,包含有以下內(nèi)容:

doc官方文檔

幾十種技術的使用samples(基于Maven管理、構建)

glassfish容器览濒,強耦合

總的來講,如若是抱著學一學的目的那么可以down下來玩玩拖云,畢竟里面的samples示例贷笛、文檔比較全。如若你是抱著使用的目的宙项,那就不建議了乏苦,畢竟glassfish我們(國內(nèi))很少使用。

?總結

30年彈指一揮間尤筐,Java EE在逐漸淡出Java開發(fā)者的視野汇荐,但中短期來看它依舊是我們繞不過的內(nèi)容,經(jīng)常能聽到盆繁、看到掀淘、聊到。當在研究Spring等開源框架的時候油昂,也經(jīng)常會看到Java EE的影子革娄。

本文介紹了Java EE的發(fā)展史倾贰,目的是對它有個籠統(tǒng)的認識。從Java EE到Jakarta EE拦惋,它能否重新煥發(fā)生命力我不知道匆浙,但留下來的不少東西依舊是目前的主流(如Servlet規(guī)范、JPA等等)厕妖,具有非常高的學習價值首尼,切莫輕視

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市言秸,隨后出現(xiàn)的幾起案子饰恕,更是在濱河造成了極大的恐慌,老刑警劉巖井仰,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埋嵌,死亡現(xiàn)場離奇詭異,居然都是意外死亡俱恶,警方通過查閱死者的電腦和手機雹嗦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來合是,“玉大人了罪,你說我怎么就攤上這事〈先” “怎么了泊藕?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長难礼。 經(jīng)常有香客問我娃圆,道長,這世上最難降的妖魔是什么蛾茉? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任讼呢,我火速辦了婚禮,結果婚禮上谦炬,老公的妹妹穿的比我還像新娘悦屏。我一直安慰自己,他們只是感情好键思,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布础爬。 她就那樣靜靜地躺著,像睡著了一般吼鳞。 火紅的嫁衣襯著肌膚如雪看蚜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天赖条,我揣著相機與錄音失乾,去河邊找鬼常熙。 笑死,一個胖子當著我的面吹牛碱茁,可吹牛的內(nèi)容都是我干的裸卫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼纽竣,長吁一口氣:“原來是場噩夢啊……” “哼墓贿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蜓氨,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤聋袋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后穴吹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幽勒,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年港令,在試婚紗的時候發(fā)現(xiàn)自己被綠了啥容。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡顷霹,死狀恐怖咪惠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情淋淀,我是刑警寧澤遥昧,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站朵纷,受9級特大地震影響炭臭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柴罐,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一徽缚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧革屠,春花似錦、人聲如沸排宰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽板甘。三九已至党瓮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盐类,已是汗流浹背寞奸。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工呛谜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人枪萄。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓隐岛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瓷翻。 傳聞我的和親對象是個殘疾皇子聚凹,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容