RebelLabs的一項調查顯示,通過在線Java用戶論壇(虛擬JUG)媒體聯盟的調查統計,2016年度最佳Java框架陣容如下:
數據來源:RebelLabs for Zero TurnAround Inc.
我們不會僅僅基於上面圖標的對比迫使你或讓你草率作出結論,但是我們會給你介紹每個概念的概述,供你分析和對比他們之間的區別,然後根據你的項目選擇最完美的匹配。
自從10多年前的第一次發布之後,SpringMVC老當益壯,繼續保持著領頭羊的地位。在其完全擁抱 MVC框架之後,Spring 不斷的發展與變化著,轉變成了一個功能全面的面向互聯網應用程序的Java框架, 它能提供給軟件工程師的是一個用於web應用程序開發的強大工具集,以及針對安全項目的應用程序配置。作為程序員世界最受歡迎的一員,Spring所擁有有發育良好的生態提供了許許多多的附加選擇: REST API 或者是 SOAP web 服務, 安全(認證和授權、加密)等等。這一選擇的另一個優勢就是大公司的開發者同行們也都在使用這個 Java 框架。因此,如果你有困難想要尋求幫助,他們隨時都能給予援手。
Spring 高居榜首並不是沒由來的。它能成為最好最知名的Java框架是因為:
簡單的POJO測試數據注入方式。
增強過的模塊化,因此擁有更好的代碼可靠性。
不同模塊之間解耦和。
能靈活運用的依賴注入(DI)。
不管文檔有多少,Spring MVC都可能並非是一個Java開發的新手能掌控的,盡管這並不是框架的一個直接缺陷,但學習曲線真的是有點太陡了。因此,在碰到這個 Java 框架中文檔相對比較缺乏的某些部分時,處理起來是會有點困難的。你找的信息如果版本不同,興許也會有差異。順便提一句,依據我們的工程師的至上經驗,Spring MVC是我們最喜愛的框架之一。
為了更詳細的闡述現代軟件工程師廣泛使用的現有Java框架,我們決定參考Apache的Struts 1後繼版本Struts 2。這個Java框架對於使用構建當代Java EE Web應用程序的工程師來說是一個很好的選擇。Apache軟件基金會為開發人員提供了一個廣泛的工具,用於創建企業級的面向Web的應用程序,開發過程的優化從開始貫徹到結束,還提供後期的維護。如果你還在為高負載系統(如廣播門戶)發愁,這個框架將是你的不二之選。
如果使用Struts 2實現Action類(普通POJO對象),那麼測試編寫的代碼所需的工作量會較少。使用框架API,耦合變得更容易,有助於調整攔截器。
當你問自己為什麼要考慮Struts 2時,一定會想到不必重寫或者不用實現Action類所帶來的極大便利——這些功能它已具備!IT工程師為多個操作創建重復設置代碼不再是一個問題,因為攔截器會處理它。
但是,你可能會因為這個Java框架的重量級而放棄這個框架:有一些程序員發現它不夠靈活。
盡管也沒有位列 RebelLabs 的名單當中,但是在討論最好的 Java 框架時, Hibernate 還是值得一提的。這個 Java 映射框架借助於將持續存在的數據庫訪問操作替換為高層次的對象處理功能,來解決對象-關系的不匹配問題。每一個企業應用程序的情況都不同,而Hibernate則擁有功能強大的工具套件來幫助後台開發人員對其數據訪問層進行微調。這是一個高級的 ORM 框架,你可以用它來在 Java 對象(實體)上進行數據庫操作。利用 Hibernate 緩存來將 Java 環境中的數據持久化到數據庫是一個持久化的概念、
只要對你寫的代碼做點小修改,Hibernate 就可以幫助你同任何數據庫進行通信, 它彌合對象和關系詞之間的鴻溝。最重要的是:
不管是 Oracle, Db2, 或者是 MySQL, Hibernate 是 DB 獨立的。
緩存機制能對類似的查詢操作進行優化。
支持 N+1 或者懶加載。
盡管有其顯著的優勢,但Hibernate並不允許多次插入操作,也不支持一些 JDBC 能支持的查詢操作。此外,如果是只有幾個表的小規模的項目,采用這個Java框架也許並不是一個好主意。
作為java EE的一部分,JavaServer Faces被Oracle所支持。雖然這不是一個可以進行快速java開發的最好框架,但它很容易使用,因為Oracle提供了大量文檔。此外,除非你離開java EE環境,JSF不需要任何的外部依賴,而功能非常強大。它擁有豐富的庫和工具(包括一個簡單的用戶界面生成工具),使之成為了一個神奇的魔法棒,無論應用程序可能看起來有多麼復雜,它都可以給予你支持與幫助。
如前所述,JSF是java EE的一個組成部分。因此,開發者可以使用IDE的軟件套件,以及來自業界領先的廠商提供的最高水平的支持。
相反,對於那些之前在網絡開發方面所具有的經驗和技能基礎還不夠牢固的人來說,JavaServer Faces還不太容易理解。
當現代開發者創建商業應用程序,並使用GWT渲染終端網頁時,Vaadin稱得上是一個超級流行的框架。Vaadin利用一個眾所周知的基於組件的方法,能夠適應浏覽器的變化,從而減輕了開發商的負擔。它擁有一套擴展的用戶界面組件,以及各種不同的部件和控件,可以讓程序員在任何時候都可以建立一個很酷的應用程序。
通過在java或HTML中的開發布局,Vaadin提供了可以使用MVC或MVP進行數據綁定的方法。而且,拖放支持以及其他突出的特點簡化了對java應用程序單頁UI的創建。
另一方面,由於Vaadin會向服務器發送回每一個事件,從而導致移動應用程序用戶界面的反應遲鈍,這是一個需要考慮的問題。
GWT是另一個免費的java框架,它允許程序員創建和優化復雜的網絡應用程序。GWT的軟件開發工具包包括核心的java API和小部件,構建隨後可以編譯成JavaScript的應用程序。
使用谷歌網頁工具包,你就可以通過單一的代碼庫(用java在浏覽器和服務器端編程)來簡化開發和調試的過程。通過與其他技術的簡單集成可以使程序員在網頁中嵌入GWT小部件。能夠自定義部件的另一個好處是可以在GWT的幫助下創建。
然而,如果你是一個網頁設計師,GWT可能不是最好的java框架選擇;因為它對於創建普通的HTML以及後期的動態內容布局沒有什麼幫助。
這個獨特的框架被視為是提升工程師生產效率的動態工具,因為其干脆的API設計,合理的默認值以及約定架構。與java的無縫集成使得這個框架成為世界上眾多框架中的首選。一系列強大的特性,如基於sping的依賴注入和各式各樣的插件,可以提供創建現代基於web的app的所有需要的東西。
可以快速搭建新項目,腳手架項目可以幫助節省大量寶貴時間。有一個龐大的插件庫可以提供900多個容易安裝的不同插件。拋開Grails的美好,對於一個全棧java開發框架,它的ORM涵蓋了大量的功能,使得它成為相對的重量級軟件。
如何選擇?在各種各樣的,2016年流行的框架中選擇適當的框架,是難以完成的任務。就像每個公司尋找盈利模式,並依據該模式來創造自己在web端和移動端需要堅守理念一樣,都是非常困難的。
無論你使用什麼框架,謹記如下原則,所選框架需要具備,易於安裝,社區活躍,文檔豐富等特點。
依賴項目類型不同,有時,明智的選擇是只使用一家公司或組織下的一套框架來解決需求,但通常更有意義的是將重量級框架以輕量級框架替代。
原文來自:http://www.chinarobots.cn/XingYeDongTai/1391.html
本文地址:http://www.linuxprobe.com/best-java-framework.html
http://xxxxxx/Linuxjc/1184542.html TechArticle