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


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

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

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

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

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

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 Facesapi

流行的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框架時,請保持開放的心態,並進行研究,找出最適合您的框架。有不少框架能夠適合您的項目,因此使用這個指南來評估您的需求。

相關文章
相關標籤/搜索