07.09 流行的9個Java框架介紹:優點、缺點等等

在2018年,Java仍然是世界上最流行的編程語言。它擁有一個巨大的生態系統,在全世界有超過900萬Java開發人員。雖然Java不是最直接的語言,但是您不需要從頭編寫Java程序。有許多優秀的Java框架可以編寫在Java虛擬機上運行的web和移動應用程序、微服務和REST api。

Java框架允許您關注應用程序的業務邏輯,而不是編寫數據庫連接或處理異常等基本功能。此外,如果您有Java方面的經驗,您可以快速入門。這些框架都使用相同的語法,使用相似的術語、範例和概念。

Play: Reactive Web and Mobile Framework for Highly Scalable Java Applications

流行的9個Java框架介紹:優點、缺點等等

Play框架可以為桌面和移動接口構建輕量級的、web友好的Java和Scala應用程序。Play是一個非常受歡迎的框架,被領英(LinkedIn)、三星(Samsung)、沃爾瑪(Walmart)、衛報(Guardian)、威瑞森(Verizon)等公司使用。

Play經常與其他編程語言的強大web框架相比較,比如Ruby的Ruby on Rails框架,Python的Django框架。實際上,Play是一個獨特的Java框架,因為它不依賴於Java EE標準。相反,它打算消除傳統Java web開發的所有不便,比如開發週期緩慢和配置過多。它儘可能地類似於腳本語言的web框架(PHP、Python、Ruby等)。

在底層,Play構建在Akka工具包之上,該工具包簡化了在Java虛擬機上創建併發和分佈式應用程序。因此,Play使用了一個完全異步的模型,可以帶來更好的可擴展性,特別是因為它還遵循無狀態原則。

Play框架通過提供熱代碼重載、約定優於配置以及瀏覽器中的錯誤消息等特性,將開發人員的工作效率放在首位。此外,它是一個反應系統,它遵循現代的系統架構(響應性、彈性、彈性和消息驅動)來實現更靈活和容錯的結果。

PrimeFaces: UI Framework for Java EE and JavaServer Faces

流行的9個Java框架介紹:優點、缺點等等

PrimeFaces是一個流行的web框架,用於為Java EE和JavaServer Faces(見上面)應用程序創建輕量級用戶界面。它被許多財富500強公司、政府機構和教育機構使用。

PrimeFaces庫確實是輕量級的。它打包為一個JAR文件,需要零配置,並且沒有任何依賴項。通過提供豐富的組件集(100+)、內置的皮膚框架和預先設計的主題和佈局,它允許您為Java應用程序創建用戶界面。由於PrimeFaces構建在JavaServer Faces之上,它繼承了一些特性,比如快速應用程序開發。您還可以向任何Java項目添加框架。

在PrimeFaces網站上,你可以找到一個很好的展示所有的早期組件、模板和主題的展示。這些組件帶有相關的代碼片段,您可以快速地將它們複製/粘貼到應用程序中,或者在必要時對它們進行調整。例如,這裡有一個水平的mega菜單,允許您一起顯示根項的子菜單。

PrimeFaces也有一個很棒的主題設計器,這是一個基於sassbased的主題引擎,有超過500個變量、一個示例主題和字體圖標。而且,如果你不想自己構建一個主題,你也可以下載一個社區主題或者購買一個高級的主題畫廊。

Spark Framework: Micro Framework for Web Apps and REST APIs

流行的9個Java框架介紹:優點、缺點等等

Spark框架是Java和Kotlin編程語言的一個微型框架和領域專用語言。Kotlin也在JVM上運行,它與Java的互操作性是100%的。使用Spark,您可以輕鬆地開發web應用程序、微服務和REST api。

微框架最初出現在Ruby和PHP等腳本語言中,由於專注於開發速度和簡單性,很快獲得了廣泛的關注。Spark受到Sinatra為Ruby開發的web應用框架的啟發,並於2011年首次發佈。它不是MVC框架,但它可以讓你隨心所欲地構建你的應用程序。與大多數微框架一樣,它有一個小的代碼庫,需要最少的配置,並且不需要編寫太多的樣板代碼。

事實上,您可以在幾分鐘內啟動Spark框架並運行。默認情況下,它在嵌入框架的Jetty web服務器上運行。但是,您也可以在其他Java web服務器上使用它。根據Spark自己的調查,超過50%的用戶使用該框架創建REST api,這可以被視為它最流行的用例。Spark還支持高通信量的web應用程序,每天服務超過10,000個用戶。

Spring Framework: Enterprise-level Java Application Framework

流行的9個Java框架介紹:優點、缺點等等

Spring框架可能是最知名的Java框架,擁有巨大的生態系統和活躍的社區。它允許您構建企業級Java應用程序、web服務和微服務。

Spring框架最初是一個依賴注入工具,但是,多年來,它已經發展成為一個全面的應用程序框架。它為您提供了一個包含所有內容的編程和配置模型,該模型支持通用任務,如建立數據庫連接或處理異常。除了Java之外,您還可以與Kotlin和Groovy一起使用這個框架,它們都在Java虛擬機上運行。

Spring框架利用了控制反轉(IoC)軟件設計原則,根據該原則,框架控制定製的代碼(而不是傳統的編程,將自定義代碼調用到處理通用任務的其他庫中)。因此,您可以為您的Spring應用程序創建鬆散耦合的模塊。

儘管Spring框架非常適合構建企業級Java應用程序,但它確實有一條陡峭的學習曲線。這是因為它是一個廣泛的框架,它打算為可能出現在企業級應用程序中的每個任務提供解決方案,並且還支持許多不同的平臺。因此,配置、設置、構建和部署過程都需要多個您可能不希望處理的步驟,尤其是在處理較小的項目時。Spring Boot(與Spring框架不同)是這個問題的解決方案,因為它允許您更快地設置Spring應用程序,配置更少。

Struts: MVC Framework for Enterprise-level Java Applications

流行的9個Java框架介紹:優點、缺點等等

Struts是由Apache Software Foundation維護和開發的全功能Java web應用程序框架。與Spring框架相比,它是一個擁有龐大社區的堅實平臺。Struts允許您創建企業級Java應用程序,隨著時間的推移,這些應用程序很容易維護。

它遵循MVC軟件設計模式,並且有一個基於插件的體系結構。插件使擴展框架以適應不同的項目需求成為可能。Struts插件是基本的JAR包。因此,它們是可移植的,您也可以將它們添加到應用程序的類路徑中。一些插件與框架綁定(JSON插件、REST插件、配置瀏覽器插件等),而您可以從第三方源添加其他插件。

您可以將Struts與其他Java框架集成在一起,以執行不構建到平臺中的任務。例如,可以使用Spring插件進行依賴注入,或者使用Hibernate插件進行對象關係映射。Struts還允許您使用不同的客戶端技術來構建應用程序的前端,例如javascript頁面或具有角度的HTML。

但是,如果您希望創建可以在前端呈現的服務器端組件,那麼Struts可能不是最好的選擇。相反,您應該查看具有不同架構的框架,如Tapestry或Wicket(請參閱下面的兩個框架)。另外,請注意,由於您仍然需要注意一些關鍵的安全漏洞,Struts最近受到了負面影響。

Tapestry: Component-oriented Framework for Highly Scalable Apps

流行的9個Java框架介紹:優點、缺點等等

Tapestry是一個基於組件的Java框架,可以創建可伸縮的web應用程序。它對可重用組件的關注使它在架構上類似於JavaServer Faces和Wicket框架。與Struts一樣,Tapestry也是Apache軟件基金會的一個項目。

可以將Tapestry頁面和組件編寫為普通的舊Java對象(pojo)。因此,您可以從框架訪問整個Java生態系統。除了Java, Tapestry還支持Groovy和Scala,並與其他Java框架(如Hibernate和Spring)集成。Tapestry已經在設計中考慮到了性能。因此,它為您提供了動態類重載、異常報告、Ajax支持以及內置組件和模板等特性。

Tapestry也是一個開發人員友好的框架。它內置了促進測試驅動開發(TDD)的實用工具,並支持Selenium測試框架。Tapestry在單個服務器和服務器集群上可以很好地伸縮。使用Tapestry構建的應用程序在瀏覽器中運行得很快,因為它遵循了許多最佳實踐,比如客戶端緩存、對併發線程的支持、JavaScript聚合和壓縮、集成GZip內容壓縮等等。

Vaadin: Web Application Framework With a Focus on UX, Accessibility, and Mobile

流行的9個Java框架介紹:優點、缺點等等

Vaadin為您提供了一個簡化Java開發的平臺。它允許您構建以性能、用戶體驗和可訪問性為重點的可定製組件的web應用程序。

關於Vaadin最有趣的事情是它的最新版本(就在幾天前,也就是2018年6月)是如此的重要以至於連主要的媒體都報道了它。Vaadin 10以一種全新的方式接近web應用程序開發:它使開發人員能夠直接從Java虛擬機訪問DOM。在新版本中,Vaadin團隊將之前的單片框架分為兩部分。它有一個名為Vaadin Flow的輕量級Java框架,用於處理路由和服務器-客戶端通信,以及一組在用戶瀏覽器中運行的UI組件。

這些組件是移動優先的,遵循最新的web和可訪問性標準;它們是基於Web組件標準構建的。您可以將Vaadin組件與任何前端框架(如React、angle或Vue)一起使用。創建者們還推薦它們作為漸進式Web應用的構建模塊。您可以基於Vaadin組件構建您自己的主題,或者使用Vaadin的兩個預定義主題:Lumo(默認)和材料。

Vaadin流為您提供了一個高級Java API來管理應用程序的所有技術方面,從通過WebSockets進行的服務器-客戶端自動通信到數據綁定。隨著流在JVM上運行,您可以訪問整個Java生態系統。例如,您可以使用Spring Boot運行應用程序。Flow還允許您在Kotlin或Scala中編寫應用程序。

Vert.x: Polyglot Event-driven Application Framework for the Java Virtual Machine

流行的9個Java框架介紹:優點、缺點等等

Vert.x是在Java虛擬機上運行的一個多語言框架。它允許您用編程語言編寫應用程序,如Java、JavaScript、Groovy、Ruby、Scala和Kotlin。它的事件驅動的體系結構導致應用程序能夠很好地伸縮,即使使用最少的硬件資源。

Vert.x是由Eclipse Foundation開發和維護的,Eclipse Foundation最著名的項目是用於Java開發的Eclipse IDE。而且,誰會比Eclipse的創建者更瞭解Java呢?綠色的“x”。x是它的多語言性質,意思是您可以用幾種不同的語言編寫有效的代碼。它為每一種受支持的編程語言提供慣用api。

Vert.x是一個事件驅動的、非阻塞的框架,它可以使用最少的線程來處理大量的concurrency。綠色。x也是相當輕量級的,核心框架僅重約650 kb。它有一個模塊化的架構,允許你只使用你需要的模塊,這樣你的應用程序就可以儘可能的靈活。綠色。如果您想構建輕量級、高度可伸縮的微服務,那麼x是一個理想的選擇。

Wicket: Component-based Web Application Framework for Purists

流行的9個Java框架介紹:優點、缺點等等

Wicket是一個基於組件的web應用程序框架,類似於JavaServer Faces和Tapestry。它允許您使用純Java和HTML代碼編寫優雅、用戶友好的應用程序。該框架由Apache Software Foundation維護,就像Struts和Tapestry一樣。

由於Wicket是一個基於組件的框架,所以Wicket應用程序由可重用的頁面和組件(如圖像、按鈕、鏈接、表單等)組成。Wicket應用程序的編程以pojo為中心,因此組件也是具有封裝和繼承等面向對象特性的普通Java對象。組件被打包成可重用的包,因此您可以向它們添加自定義的CSS和JavaScript。

Wicket通過為超過25種語言提供開箱即用的支持,使應用程序、頁面和組件國際化。它內置的Ajax功能允許您實時更新頁面的某些部分,而不需要編寫任何JavaScript代碼。Wicket也注意安全的URL處理。組件路徑是會話相關的,url不會顯示任何敏感信息。

結論

當涉及到Java框架時,請保持開放的心態,並進行研究,找出最適合您的框架。有很多框架可以適合您的項目,所以使用這個指南來評估您的需求。


分享到:


相關文章: