文章出處

毫無疑問,Java 是目前最為流行的編程語言之一,這里我們挖掘出了一些比較受歡迎的框架的有效信息,它們可以減輕全球軟件開發人員的日常工作。

RebelLabs的一項調查顯示,通過在線Java用戶論壇(虛擬JUG)媒體聯盟的調查統計,2016年度最佳Java框架陣容如下:

數據來源:RebelLabs for Zero TurnAround Inc.

我們不會僅僅基于上面圖標的對比迫使你或讓你草率作出結論,但是我們會給你介紹每個概念的概述,供你分析和對比他們之間的區別,然后根據你的項目選擇最完美的匹配。

1. Spring MVC

自從10多年前的第一次發布之后,SpringMVC老當益壯,繼續保持著領頭羊的地位。在其完全擁抱 MVC框架之后,Spring 不斷的發展與變化著,轉變成了一個功能全面的面向互聯網應用程序的Java框架, 它能提供給軟件工程師的是一個用于web應用程序開發的強大工具集,以及針對安全項目的應用程序配置。作為程序員世界最受歡迎的一員,Spring所擁有有發育良好的生態提供了許許多多的附加選擇: REST API 或者是 SOAP web 服務, 安全(認證和授權、加密)等等。這一選擇的另一個優勢就是大公司的開發者同行們也都在使用這個 Java 框架。因此,如果你有困難想要尋求幫助,他們隨時都能給予援手。

優缺點

Spring 高居榜首并不是沒由來的。它能成為最好最知名的Java框架是因為:

  • 簡單的POJO測試數據注入方式。
  • 增強過的模塊化,因此擁有更好的代碼可靠性。
  • 不同模塊之間解耦和。
  • 能靈活運用的依賴注入(DI)。

不管文檔有多少,Spring MVC都可能并非是一個Java開發的新手能掌控的,盡管這并不是框架的一個直接缺陷,但學習曲線真的是有點太陡了。因此,在碰到這個 Java 框架中文檔相對比較缺乏的某些部分時,處理起來是會有點困難的。你找的信息如果版本不同,興許也會有差異。順便提一句,依據我們的工程師的至上經驗,Spring MVC是我們最喜愛的框架之一。

2. Struts 2

為了更詳細的闡述現代軟件工程師廣泛使用的現有Java框架,我們決定參考Apache的Struts 1后繼版本Struts 2。這個Java框架對于使用構建當代Java EE Web應用程序的工程師來說是一個很好的選擇。Apache軟件基金會為開發人員提供了一個廣泛的工具,用于創建企業級的面向Web的應用程序,開發過程的優化從開始貫徹到結束,還提供后期的維護。如果你還在為高負載系統(如廣播門戶)發愁,這個框架將是你的不二之選。

如果使用Struts 2實現Action類(普通POJO對象),那么測試編寫的代碼所需的工作量會較少。使用框架API,耦合變得更容易,有助于調整攔截器。

優點和缺點

當你問自己為什么要考慮Struts 2時,一定會想到不必重寫或者不用實現Action類所帶來的極大便利——這些功能它已具備!IT工程師為多個操作創建重復設置代碼不再是一個問題,因為攔截器會處理它。

但是,你可能會因為這個Java框架的重量級而放棄這個框架:有一些程序員發現它不夠靈活。

3. Hibernate

盡管也沒有位列 RebelLabs 的名單當中,但是在討論最好的 Java 框架時, Hibernate 還是值得一提的。這個 Java 映射框架借助于將持續存在的數據庫訪問操作替換為高層次的對象處理功能,來解決對象-關系的不匹配問題。每一個企業應用程序的情況都不同,而Hibernate則擁有功能強大的工具套件來幫助后臺開發人員對其數據訪問層進行微調。這是一個高級的 ORM 框架,你可以用它來在 Java 對象(實體)上進行數據庫操作。利用 Hibernate 緩存來將 Java 環境中的數據持久化到數據庫是一個持久化的概念、

優缺點

只要對你寫的代碼做點小修改,Hibernate 就可以幫助你同任何數據庫進行通信, 它彌合對象和關系詞之間的鴻溝。最重要的是:

  • 不管是 Oracle, Db2, 或者是 MySQL, Hibernate 是 DB 獨立的。
  • 緩存機制能對類似的查詢操作進行優化。
  • 支持 N+1 或者懶加載。

盡管有其顯著的優勢,但Hibernate并不允許多次插入操作,也不支持一些 JDBC 能支持的查詢操作。此外,如果是只有幾個表的小規模的項目,采用這個Java框架也許并不是一個好主意。

4. JSF

作為java EE的一部分,JavaServer Faces被Oracle所支持。雖然這不是一個可以進行快速java開發的最好框架,但它很容易使用,因為Oracle提供了大量文檔。此外,除非你離開java EE環境,JSF不需要任何的外部依賴,而功能非常強大。它擁有豐富的庫和工具(包括一個簡單的用戶界面生成工具),使之成為了一個神奇的魔法棒,無論應用程序可能看起來有多么復雜,它都可以給予你支持與幫助。

優缺點

如前所述,JSF是java EE的一個組成部分。因此,開發者可以使用IDE的軟件套件,以及來自業界領先的廠商提供的最高水平的支持。

相反,對于那些之前在網絡開發方面所具有的經驗和技能基礎還不夠牢固的人來說,JavaServer Faces還不太容易理解。

5. Vaadin

當現代開發者創建商業應用程序,并使用GWT渲染終端網頁時,Vaadin稱得上是一個超級流行的框架。Vaadin利用一個眾所周知的基于組件的方法,能夠適應瀏覽器的變化,從而減輕了開發商的負擔。它擁有一套擴展的用戶界面組件,以及各種不同的部件和控件,可以讓程序員在任何時候都可以建立一個很酷的應用程序。

優缺點

通過在java或HTML中的開發布局,Vaadin提供了可以使用MVC或MVP進行數據綁定的方法。而且,拖放支持以及其他突出的特點簡化了對java應用程序單頁UI的創建。

另一方面,由于Vaadin會向服務器發送回每一個事件,從而導致移動應用程序用戶界面的反應遲鈍,這是一個需要考慮的問題。

6. Google Web Toolkit

GWT是另一個免費的java框架,它允許程序員創建和優化復雜的網絡應用程序。GWT的軟件開發工具包包括核心的java API和小部件,構建隨后可以編譯成JavaScript的應用程序。

優缺點

使用谷歌網頁工具包,你就可以通過單一的代碼庫(用java在瀏覽器和服務器端編程)來簡化開發和調試的過程。通過與其他技術的簡單集成可以使程序員在網頁中嵌入GWT小部件。能夠自定義部件的另一個好處是可以在GWT的幫助下創建。

然而,如果你是一個網頁設計師,GWT可能不是最好的java框架選擇;因為它對于創建普通的HTML以及后期的動態內容布局沒有什么幫助。

7. Grails

這個獨特的框架被視為是提升工程師生產效率的動態工具,因為其干脆的API設計,合理的默認值以及約定架構。與java的無縫集成使得這個框架成為世界上眾多框架中的首選。一系列強大的特性,如基于sping的依賴注入和各式各樣的插件,可以提供創建現代基于web的app的所有需要的東西。

優缺點

可以快速搭建新項目,腳手架項目可以幫助節省大量寶貴時間。有一個龐大的插件庫可以提供900多個容易安裝的不同插件。拋開Grails的美好,對于一個全棧java開發框架,它的ORM涵蓋了大量的功能,使得它成為相對的重量級軟件。

如何選擇?

在各種各樣的,2016年流行的框架中選擇適當的框架,是難以完成的任務。就像每個公司尋找盈利模式,并依據該模式來創造自己在web端和移動端需要堅守理念一樣,都是非常困難的。

無論你使用什么框架,謹記如下原則,所選框架需要具備,易于安裝,社區活躍,文檔豐富等特點。

依賴項目類型不同,有時,明智的選擇是只使用一家公司或組織下的一套框架來解決需求,但通常更有意義的是將重量級框架以輕量級框架替代。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()