掌握透徹這15個Java框架,你也能輕鬆成為年薪百萬的阿里架構師

軟帝學院一java教學 發佈 2020-01-10T05:40:22+00:00

計劃要求增加對Java9中的模塊化功能的支持, 並支持更多的Web生態系統組件。Dropwizard:「 ops-friendly」網絡服務Dropwizard於2011年首次發布,是用於構建「 ops友好型」 RESTful Web服務的框架。

Java開發框架可以幫助開發人員更快地啟動和運行應用程式,提供代碼重用並消除構建樣板代碼的任務。

Blade:輕量級的MVC框架

該MVC框架基於Java 8和Netty Web伺服器。Blade被描述為輕巧簡單,提供了RESTful樣式的路由接口,並且沒有侵入式攔截器,文檔狀態。Blade的原始碼小於500KB。

為了使用Blade構建應用程式,開發人員將創建一個通用的Maven項目。包括模板引擎支持和流式API樣式。

Blade的開發始於2015年,目標是提供一個完整的Web框架。計劃要求增加對Java 9中的模塊化功能的支持, 並支持更多的Web生態系統組件。

Dropwizard:「 ops-friendly」網絡服務

Dropwizard於2011年首次發布,是用於構建「 ops友好型」 RESTful Web服務的框架。使用Dropwizard,您可以使用Jetty HTTP庫或將HTTP伺服器嵌入到項目中。Jersey JAX-RS實現允許編寫可測試的類,該類將HTTP請求映射到Java對象。還有用於JSON的Jackson工具。

核心貢獻者Nick Babcock說,Dropwizard的關鍵是開發期間和開發後的生產力。開發人員可以專注於業務邏輯,而不必為度量,配置和日誌記錄編寫代碼。Dropwizard的構建者計劃在確定改進框架的位置時繼續關注對Jetty和Jersey等項目的改進。

Grails:通過Groovy JVM語言錨定

現在由對象計算倡議(OCI)維護的 Grails是一個用於為JVM構建Web應用程式的框架。開發人員可以構建諸如內容管理系統和電子商務站點之類的應用程式,以及RESTful Web服務。Grails 基於Groovy JVM語言,可與Java技術一起使用,包括Java EE容器,Hibernate和Spring,並與Java Development Kit一起運行。

愛好者說,與使用其他框架構建應用程式相比,它所需的代碼少得多,複雜度也更低。由Graeme Rocher共同創立的具有十年歷史的框架的版本4.0將於2018年底推出,其功能包括對Groovy 2.5,Java 8基準和Java 9的支持。

GWT:Java輸入,JavaScript輸出

GWT被稱為「 gwit」,也稱為Google Web Toolkit,它使開發人員可以用Java編寫客戶端應用程式並將其部署為JavaScript。它已在Google產品(例如AdWords和電子錢包)中使用。

GWT支持瀏覽器應用程式的開發,而開發人員不必是JavaScript或XMLHttpRequest之類的技術專家。GWT SDK包括Java庫,編譯器和開發伺服器。GWT編譯器提供了跨代碼庫的優化,包括內聯方法,無效代碼刪除和優化字符串。代碼中的拆分點可以將下載分成多個JavaScript片段,並縮短啟動時間。

JavaServer Faces:Web UI規範

已有14年歷史的JavaServer Faces(JSF)具有Java規範,用於為Web應用程式構建基於組件的UI。它也是一個MVC Web框架,用於簡化基於伺服器的應用程式的UI的構造,並在頁面中提供可重複使用的UI組件。JSF為UI開發提供了一種基於標準的方法,其應用程式可跨Java EE應用程式伺服器移植。

當前版本的JSF 2使用Facelets作為其默認模板系統。也可以部署包括XUL(XML用戶介面語言)和純Java在內的View技術。

在JSF之上有諸如Apache MyFaces之類的實現。另外,Eclipse Foundation擁有其JSF Tools Project,該項目旨在簡化JSF應用程式的開發。

JHipster:Angular或Spring Boot的選擇

已有4年歷史的JHipster在Spring Boot應用程式構建器的基礎上工作,提供了現代的Web服務或微服務架構。它可以構建Spring Boot和Angular應用程式。JHipster由Okta贊助,該公司提供一項服務,可提供對工具的安全訪問。

客戶端技術包括Yeoman,Webpack,Angular和Bootstrap。伺服器端技術包括Maven,Spring技術和Netflix OSS。

正在開發中的是JHipster 5,後端支持Spring Boot 2,前端支持React JavaScript UI框架。JHipster的域語言也將得到增強。

MyBatis:輕鬆進行關係資料庫集成

MyBatis的主要賣點是簡化JDBC的使用並減少編寫與關係資料庫進行交互的Java應用程式時所需的代碼量。MyBatis與對象關係映射工具不同,它不將類映射到表而是將對象映射到SQL。使用MyBatis,不會對開發人員隱藏SQL。該框架在可與其一起使用的資料庫和模式方面提供了靈活性。

MyBatis最初稱為iBatis,它於2002年首次公開展示。

播放框架:反應式網絡框架

Play使用輕量級的無狀態架構,是適用於Java和Scala的高效,反應式Web框架。它提供了有關代碼更改的熱負載,開發人員可以在其中進行更改,刷新瀏覽器並立即查看更改,而無需重新編譯或部署。

異步API使開發人員可以構建可使用最少資源進行擴展的Web應用程式。該框架基於用於分布式應用程式的Akka工具包構建,於2007年首次發布,並於2012年進行了重寫。該計劃要求將Play模塊化,並針對微服務設計模塊。使用熱重載,多個Play服務將能夠通過單個命令立即運行。也正在考慮更好地支持微服務模式,例如異步消息傳遞和事件源。

PrimeFaces:輕量級UI框架

擁有十年歷史的PrimeFaces是Java EE和JavaServer Faces的UI框架,它是配置為單個.jar文件且沒有依賴關係的輕量級庫。該框架由電子商務提供商Prime Technology贊助,包含100多個組件,觸摸優化的移動套件,客戶端驗證和主題套件。

PrimeFaces的開發人員正在使用JSF Renderer APis進行試驗,以確定JSF應用程式是否可以在引入Java後端的情況下呈現漸進式Web應用程式(PWA)。他們還正在考慮讓JSF組件呈現Web組件以利用現代Web API的優勢。

Spark框架:用於快速開發的微框架

Spark框架(不要與Apache Spark大數據模式混淆)是一個聲明性的Web框架,它使開發人員可以重新開始工作並快速運行。使用Java 8的語言功能,已有 7年歷史的Spark Framework提供了表達性API。

Spark的開發人員計劃對原始框架進行重大更新,將其標記為Version 3.0,並針對Kotlin語言發布Spark的正式版本。

Spring框架:早期支持依賴項注入

可能是最著名的Java框架,已有14年歷史的Spring Framework長期以來一直將依賴項注入作為一項關鍵功能,甚至在Java Enterprise Edition(EE)具備此功能之前就提供了此功能。

該框架具有用於企業Java應用程式的編程和配置模型。它旨在照顧應用程式「管道」,以便開發團隊可以專注於應用程式級業務邏輯。它還提供代碼,事務管理,數據訪問和Web應用程式的向後兼容性和可測試性。

Spring系列中的合作夥伴項目包括 Spring Boot,以幫助構建Spring應用程式。

Struts:Apache的MVC框架

Struts是用於構建Web應用程式的MVC框架。它使用插件架構,包括用於REST,AJAX和JSON的插件。Struts具有用於提供和維護基於Web的用戶介面和服務的工具,可幫助開發人員橋接表示層和服務層,並協助類型轉換和輸入驗證。Struts將請求-響應模型與HTML和AJAX UI組件結合在一起。

最初的Struts 1.0框架於2000年問世。在2006年將WebWork 2代碼庫與Struts合併之後,Struts 2出現了。Struts3的開發即將開始,Apache稱其為該框架的徹底翻新。

Tapestry:面向組件的框架

Apache的Tapestry是一個面向組件的框架,用於在Java中構建可伸縮的Web應用程式。可以使用Java,Groovy或Scala進行編碼。

在Tapestry中,頁面和組件是POJO(普通的舊Java對象)。Apache表示,開發人員可以 通過訪問Java語言功能和Java生態系統來獲得Java 的速度和深度以及類似於Ruby或Python的敏捷開發。還提供POJO類,模板和異常報告。實時類重載功能使開發人員可以更改代碼,刷新瀏覽器並查看更改,類似於Play框架。

Tapestry 1.0創建於2000年。當前版本Tapestry 5是沒有版本4共享代碼的重寫。計劃在即將發布的5.5版本中增加Java 9支持,性能改進和TypeScript編譯。

Vaadin Flow:連結瀏覽器和伺服器

Vaadin的Flow Java Web框架架起了Web和Java生態系統的橋樑,在瀏覽器和伺服器之間進行雙向通信,將Web UI連結到伺服器端Java。從DOM提供對伺服器的直接訪問。應用程式在JVM上運行。

Vaadin Flow是Vaadin 10開發平台的一部分,於2017年10月在beta版本中引入Vaadin是一個整體框架,但該公司從Vaadin 10開始將框架拆分為Flow和Web組件集.Vaadin Flow的構建者希望使其更快並使構建漸進式Web應用程式更加容易。

Vert.x:JVM上的響應式應用程式

Eclipse Foundation的Vert.x工具箱是事件驅動和非阻塞的。這意味著應用程式可以使用少量內核線程來處理並發。Vert.x可以與Java,JavaScript,Groovy,Kotlin,Ruby,Ceylon和Scala一起使用。為支持的語言提供了慣用的API。

該框架不是限制性的。開發者說,開發人員可以得到「有用的積木」,並且可以按自己的意願構建應用。Vert.x也可用於構建輕量級微服務。

Vert.x 1.0於2012年9月發布。版本3.5.1於2018年2月發布,均支持 JUnit 5 Java測試框架。

Wicket:抽象的面向請求的Web技術

Apache的Wicket是一個面向組件的Web框架,它抽象了面向請求的Web技術,並向開發人員提供UI概念,開發人員可以使用Java和HTML構建UI。使用Wicket,頁面由相互協作以提供所需功能的組件組成。開發人員從頁面,面板,按鈕,連結,表單和列表視圖的角度進行思考。組件還可以具有與它們關聯的國際化,JavaScript和CSS文件。

已有14年歷史的Wicket於2007年成為Apache項目。Wicket的下一步是Java 8習語的引入。開發人員將能夠通過Wicket組件使用新的時間/日期API和lambda表達式。(Lambda表達式將減少樣板代碼。)

最後,開發這麼多年我也總結了一套學習Java的資料與面試題,如果你在技術上面想提升自己的話,可以關注我,私信發送領取資料或者在評論區留下自己的聯繫方式,有時間記得幫我點下轉發讓跟多的人看到哦。


關鍵字: