今年7款最佳 Java 框架
導讀 | 毫無疑問,Java 是目前最為流行的程式語言之一,這裡我們挖掘出了一些比較受歡迎的框架的有效資訊,它們可以減輕全球軟體開發人員的日常工作。 |
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端和移動端需要堅守理念一樣,都是非常困難的。
無論你使用什麼框架,謹記如下原則,所選框架需要具備,易於安裝,社群活躍,文件豐富等特點。
依賴專案型別不同,有時,明智的選擇是隻使用一家公司或組織下的一套框架來解決需求,但通常更有意義的是將重量級框架以輕量級框架替代。