2016年Java最受歡迎的7大框架

毫無疑問,Java是目前最需要的編程語言之一盛泡。在這里闷祥,我們已經(jīng)挖掘了一些關(guān)于框架趨勢的有用信息,以減輕全球軟件開發(fā)人員的日常工作饭于。

根據(jù)RebelLabs蜀踏,也是在線Java用戶組(虛擬JUG)的媒體盟友所進(jìn)行的調(diào)查维蒙,2016年最佳java框架的陣容如下:

我們并不希望你只看比較圖,而跳過對每個(gè)框架的概述果覆,因?yàn)槔锩鏁蚣苓M(jìn)行分析和對比颅痊,來幫助你根據(jù)你的項(xiàng)目選擇完美的工具。

1.Spring MVC

姜還是老的辣局待,Spring MVC自從它第一次發(fā)布已經(jīng)有了十多年的歷史斑响,但仍然處于領(lǐng)先地位。在為了擁抱完整的MVC框架的擴(kuò)展之后钳榨,Spring繼續(xù)保持發(fā)展變化舰罚,并轉(zhuǎn)變成為了面向Internet的應(yīng)用程序的全面Java框架,為軟件工程師在Web應(yīng)用程序開發(fā)和應(yīng)用程序配置以及安全項(xiàng)目上提供了強(qiáng)大的工具包薛耻。作為程序員中最受歡迎的框架之一营罢,Spring有一個(gè)得到很好開發(fā)的生態(tài)系統(tǒng),提供各種附加選項(xiàng):REST API或SOAP Web服務(wù)饼齿,安全(身份驗(yàn)證和授權(quán)饲漾,加密)等。選擇它還有一個(gè)好處是很多大公司里的開發(fā)同行也選擇用這個(gè)特定的Java框架缕溉。因此考传,他們可以為你提供你所需的查詢幫助。

優(yōu)點(diǎn)和缺點(diǎn)

沒有理由的证鸥,Spring在圖表的頂部沒有嵌套僚楞。它是最好和最知名的Java框架之一,因?yàn)椋?/p>

通過使用POJO簡化測試數(shù)據(jù)的注入枉层。

增強(qiáng)的模塊化泉褐,導(dǎo)致更好的代碼可讀性。

不同模塊之間的松散耦合鸟蜡。

依賴注入(DI)靈活使用兴枯。

雖然并非框架直接的一個(gè)缺點(diǎn),忽略參考文檔數(shù)量矩欠,Spring MVC可能并非Java新手開發(fā)人員可以輕易掌握财剖,它的學(xué)習(xí)曲線過于陡峭。因此癌淮,處理這個(gè)Java框架的某些部分可能會有點(diǎn)難躺坟,如果你碰上一個(gè)糟糕的參考文檔的話。你可能會發(fā)現(xiàn)不同版本之間的信息有所不同乳蓄。

順便說一句咪橙,由于我們工程師的偉大經(jīng)驗(yàn),Spring MVC是我們最喜歡的框架之一。

2. Struts 2

為了更詳細(xì)地闡述為現(xiàn)代軟件工程師廣泛使用的現(xiàn)有Java框架美侦,我們決定引用Apache的Struts 1(Struts 2)的后續(xù)版本产舞。這個(gè)Java框架對于那些構(gòu)建當(dāng)代Java EE Webapp的工程師來說真是一個(gè)不錯(cuò)的發(fā)現(xiàn)。Apache Software Foundation為開發(fā)人員提供了一個(gè)廣泛的工具菠剩,用于創(chuàng)建面向企業(yè)的web應(yīng)用程序易猫,優(yōu)化了從開始到最終點(diǎn)的開發(fā)過程以及后期維護(hù)。如果你正在對高負(fù)載系統(tǒng)(如廣播門戶)愁眉不展具壮,那么這是一個(gè)正確的選擇准颓。

由于Struts 2實(shí)現(xiàn)好了的Action類(普通POJO對象),測試編寫代碼所需的工作量減輕了棺妓。使用框架的API攘已,耦合變得更容易怜跑,這也有助于調(diào)整攔截器样勃。

優(yōu)點(diǎn)和缺點(diǎn)

當(dāng)你問自己為什么應(yīng)該考慮Struts 2的時(shí)候,那就想想不必重寫或?qū)崿F(xiàn)Action類的奢侈——它已經(jīng)就位了彤灶! IT工程師需要為多個(gè)操作而創(chuàng)建重復(fù)設(shè)置的代碼不再是一個(gè)問題,因?yàn)閿r截器會處理它鞋囊。

然而挺益,你可能會因?yàn)檫@個(gè)Java框架的龐大體型而望而卻步:一些程序員發(fā)現(xiàn)它不夠靈活夯缺。

3.Hibernate

雖然也不是在RebelLabs的列表中,但在討論最好的Java框架時(shí)截驮,Hibernate值得一提鹉勒。這種映射Java框架通過替換持久化的DB訪問高級對象處理函數(shù)來破解對象關(guān)系阻抗不匹配問題捺氢。隨著每個(gè)企業(yè)應(yīng)用程序開始都有這樣的問題盔憨,Hibernate配備了一個(gè)偉大的功能套件,來幫助后端開發(fā)人員微調(diào)數(shù)據(jù)訪問層讯沈。這是一個(gè)高級的ORM框架郁岩,允許你對Java對象(實(shí)體)執(zhí)行數(shù)據(jù)庫操作婿奔。它是一個(gè)持久性的概念——利用Hibernate緩存將數(shù)據(jù)從Java環(huán)境持久化到數(shù)據(jù)庫。

優(yōu)點(diǎn)和缺點(diǎn)

Hibernate允許你使用你寫的代碼中的微小變化與任何數(shù)據(jù)庫通信问慎,彌合對象和關(guān)系詞之間的差距萍摊。最重要的是:

Oracle,Db2或MySQL如叼,Hibernate是獨(dú)立于DB的冰木。

通過相似查詢的緩存機(jī)制到bug數(shù)據(jù)庫。

N + 1或延遲加載支持笼恰。

雖然它有這些明顯的優(yōu)勢踊沸,但Hibernate不允許多個(gè)插入,不允許JDBC可以做的一些查詢社证。此外逼龟,對于具有較少表格的小規(guī)模項(xiàng)目,此Java框架可能不是一個(gè)好的選擇追葡。

4.JSF

作為Java EE的一部分腺律,Oracle支持JavaServer

Faces。雖然不是快速Java開發(fā)的最好框架宜肉,但它很容易使用匀钧,因?yàn)镺racle提供了偉大的文檔。此外谬返,在你使用Java

EE環(huán)境之時(shí)之斯,你會發(fā)現(xiàn)JSF沒有外部依賴,反而提供了大量功能遣铝。豐富的庫和工具(包括一個(gè)方便創(chuàng)建用戶界面的工具集)使之成為了一個(gè)魔術(shù)棒佑刷,來支持你面對無論看起來有多復(fù)雜的應(yīng)用程序。

優(yōu)點(diǎn)和缺點(diǎn)

如上所述翰蠢,JSF是Java EE的一個(gè)組成部分。因此啰劲,開發(fā)人員利用IDE軟件套件以及來自行業(yè)領(lǐng)先供應(yīng)商最好水平的支持梁沧。

另一方面,JavaServer Faces太龐大蝇裤,以致于對于那些在web開發(fā)基礎(chǔ)上的經(jīng)驗(yàn)和技能不夠堅(jiān)固的人而言廷支,非常難以理解。

5.Vaadin

使用GWT渲染結(jié)束網(wǎng)頁栓辜,Vaadin成為了現(xiàn)代開發(fā)人員在創(chuàng)建業(yè)務(wù)應(yīng)用程序時(shí)選擇的流行框架之一恋拍。利用一個(gè)眾所周知的基于組件的方法,Vaadin通過將做的改變傳達(dá)給瀏覽器來減輕了開發(fā)人員的負(fù)擔(dān)藕甩。一個(gè)廣泛的UI組件施敢,以及各種小部件和控件,允許程序員隨時(shí)構(gòu)建酷酷的應(yīng)用程序。

優(yōu)點(diǎn)和缺點(diǎn)

在Java僵娃,HTML或兩者中構(gòu)建布局概作,Vaadin提供了使用或MVC或MVP綁定數(shù)據(jù)的機(jī)會。拖放支持以及其他突出的功能簡化了Java應(yīng)用程序單頁UI的創(chuàng)建默怨。

在缺點(diǎn)方面讯榕,移動(dòng)應(yīng)用程序的UI遲緩可能是一個(gè)問題,因?yàn)閂aadin將每個(gè)事件發(fā)送回服務(wù)器匙睹。

6. Google Web Toolkit

GWT是另一個(gè)免費(fèi)的Java框架愚屁,允許程序員創(chuàng)建和優(yōu)化復(fù)雜的基于Web的應(yīng)用程序。 GWT軟件開發(fā)套件提供核心Java API和小部件痕檬,用于構(gòu)建之后編譯為JavaScript的應(yīng)用程序霎槐。

優(yōu)點(diǎn)和缺點(diǎn)

使用Google Web Toolkit,你可以獲得單個(gè)代碼庫(Java中的瀏覽器端和服務(wù)器端編程)谆棺,從而簡化開發(fā)和調(diào)試過程栽燕。與其他技術(shù)的簡單集成允許程序員在Web頁面中嵌入GWT小部件。自定義窗口小部件功能是另一個(gè)可以在GWT幫助下創(chuàng)建的好處改淑。

然而碍岔,如果你是一個(gè)Web設(shè)計(jì)師,GWT可能并非Java框架的最佳選擇朵夏;它對那些純HTML和后期動(dòng)態(tài)內(nèi)容布局并不和藹可親蔼啦。

7.Grails

這個(gè)特殊的Web框架因?yàn)槠涔虉?zhí)的API饶碘,合理的默認(rèn)值蓄诽,以及約定優(yōu)于配置的范例掰邢,使之被當(dāng)作是一個(gè)提高工程師生產(chǎn)力的動(dòng)態(tài)工具随常。無縫的Java集成使得這個(gè)特殊的框架成為了全世界大量程序員的最佳選擇银酗。一系列強(qiáng)大的功能余黎,例如Spring提供的依賴注入和各種插件抵蚊,提供了創(chuàng)建現(xiàn)代基于Web的應(yīng)用程序所需的一切宵蕉。

優(yōu)點(diǎn)和缺點(diǎn)

快速設(shè)置一個(gè)新的項(xiàng)目和支架為程序員節(jié)省了大量寶貴的時(shí)間躏升。一個(gè)巨大的庫提供了超過900種不同的易于安裝的插件辩棒。盡管Grails是一個(gè)全棧開發(fā)的Java框架,但它還有一個(gè)Grails的對象關(guān)系映射覆蓋的龐大功能膨疏,使其成為了一個(gè)相對笨重的軟件一睁。

那么選擇什么呢?

在2016年各種流行的Java框架中選擇合適的概念可能是一個(gè)麻煩的任務(wù)佃却,因?yàn)槊總€(gè)公司在選擇獲勝方法時(shí)都會堅(jiān)持他們自己基于web和移動(dòng)app創(chuàng)建的思想者吁。無論你使用的是什么確切的框架,謹(jǐn)記許可證饲帅,易于安裝复凳,網(wǎng)絡(luò)的活躍程度瘤泪,以及手邊的文檔等。根據(jù)項(xiàng)目類型染坯,有時(shí)均芽,明智的做法是將所有工具放在一起挑選,但很多時(shí)候单鹿,“減肥”和轉(zhuǎn)向一個(gè)輕量級的概念更有意義掀宋。

另一個(gè)問題是,你忙碌的小伙伴們是否準(zhǔn)備好學(xué)習(xí)仲锄,是否有空余時(shí)間分配給知識汲取劲妙。通常,將開發(fā)交給遠(yuǎn)程團(tuán)隊(duì)并獲得可盈利產(chǎn)品是非常值得的儒喊×头埽快樂開發(fā)!

譯文鏈接:http://www.codeceo.com/article/2016-7-best-java-framework.html

翻譯作者:碼農(nóng)網(wǎng)– 小峰

[轉(zhuǎn)載必須在正文中標(biāo)注并保留原文鏈接怀愧、譯文鏈接和譯者等信息侨颈。]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市芯义,隨后出現(xiàn)的幾起案子哈垢,更是在濱河造成了極大的恐慌,老刑警劉巖扛拨,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耘分,死亡現(xiàn)場離奇詭異,居然都是意外死亡绑警,警方通過查閱死者的電腦和手機(jī)求泰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來计盒,“玉大人渴频,你說我怎么就攤上這事”逼簦” “怎么了卜朗?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長暖庄。 經(jīng)常有香客問我聊替,道長楼肪,這世上最難降的妖魔是什么培廓? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮春叫,結(jié)果婚禮上肩钠,老公的妹妹穿的比我還像新娘泣港。我一直安慰自己,他們只是感情好价匠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布当纱。 她就那樣靜靜地躺著,像睡著了一般踩窖。 火紅的嫁衣襯著肌膚如雪坡氯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天洋腮,我揣著相機(jī)與錄音箫柳,去河邊找鬼。 笑死啥供,一個(gè)胖子當(dāng)著我的面吹牛悯恍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伙狐,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼涮毫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了贷屎?” 一聲冷哼從身側(cè)響起罢防,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎豫尽,沒想到半個(gè)月后篙梢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡美旧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年渤滞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片榴嗅。...
    茶點(diǎn)故事閱讀 40,110評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡妄呕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嗽测,到底是詐尸還是另有隱情绪励,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布唠粥,位于F島的核電站疏魏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晤愧。R本人自食惡果不足惜大莫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望官份。 院中可真熱鬧只厘,春花似錦烙丛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赋元,卻和暖如春忘蟹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搁凸。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工寒瓦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坪仇。 一個(gè)月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓杂腰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親椅文。 傳聞我的和親對象是個(gè)殘疾皇子喂很,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)皆刺,斷路器少辣,智...
    卡卡羅2017閱讀 134,663評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法羡蛾,內(nèi)部類的語法漓帅,繼承相關(guān)的語法,異常的語法痴怨,線程的語...
    子非魚_t_閱讀 31,639評論 18 399
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,823評論 6 342
  • spring mvc 工作機(jī)制(原理): DispatcherServlet主要用作職責(zé)調(diào)度工作忙干,本身主要用于控制...
    java大濕兄閱讀 1,896評論 5 24
  • 文|云兒飄 我選的一門課叫《中國現(xiàn)代文學(xué)作品精選》,其中有一節(jié)課學(xué)的是蕭紅寫的《回憶魯迅先生》浪藻。 之前捐迫,我對魯迅的...
    云兒飄是我閱讀 1,699評論 1 9