五款用于Web應(yīng)用開發(fā)的優(yōu)秀Java框架
譯文【51CTO.com快譯】從1996年1月23日的首發(fā)到現(xiàn)在,Java已經(jīng)走過了24個(gè)年頭了。根據(jù)TIOBE指數(shù)(譯者注:該排行榜是根據(jù)互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的程序員、課程和第三方廠商的數(shù)量,使用搜索引擎統(tǒng)計(jì)出各類排名)的顯示:Java持續(xù)排名第一。Java已證明了自己配得上用于定制軟件開發(fā)的優(yōu)秀通用編程語言。而且,包括ESPN、SnapDeal、以及阿里巴巴在內(nèi)的134,861個(gè)網(wǎng)站均將Java作為其主要的編程語言。
在下面提供的餅圖中,您可以清楚地看到Java作為編程語言,在各個(gè)行業(yè)中的使用情況。
不過,光使用Java語言來從零開始開發(fā)某個(gè)Web應(yīng)用程序顯然是不夠的,我們需要選擇適當(dāng)?shù)腤eb框架,以實(shí)現(xiàn)事半功倍的效果。在此,我們根據(jù)過往的項(xiàng)目經(jīng)驗(yàn),向您介紹適用于Web開發(fā)的五大優(yōu)秀Java框架,供您根據(jù)實(shí)際情況按需做出選擇。
1. Spring
Spring框架是一款功能強(qiáng)大的輕量級Web應(yīng)用開發(fā)框架。面對需要高性能的復(fù)雜Web應(yīng)用需求,Spring能夠提供出色的開發(fā)服務(wù),因此它在各個(gè)框架中能夠脫穎而出。Spring框架的核心宗旨是使得Java開發(fā)人員可以輕松地創(chuàng)建出企業(yè)級的應(yīng)用程序。
Spring提供了包括:Spring MVC、Spring Core、Spring Security、Spring Transaction、Spring Boost、以及Spring ORM在內(nèi)的許多模塊,以方便企業(yè)應(yīng)用根據(jù)實(shí)際情況靈活選用。如果您想深入了解其具體的使用場景和用法的話,可以參見《Spring框架注釋指南(A Guide to Spring Framework Annotations)》。
優(yōu)點(diǎn)
- 它提供了一個(gè)輕量級的容器,用戶無需使用Web服務(wù)器、或應(yīng)用服務(wù)器軟件,即可啟動之。
- 由于支持JDBC,因此可提高實(shí)際應(yīng)用的生產(chǎn)率,并減少錯(cuò)誤率。
- Spring能夠同時(shí)支持XML,以及基于注釋的配置。
- 它提供了代碼的向后兼容性,和可測試性。
2. JSF(Java Server Faces)
由Oracle開發(fā)的Java Server Faces(JSF),可用于創(chuàng)建企業(yè)級的應(yīng)用程序、各種原生應(yīng)用、以及Web應(yīng)用的開發(fā)。它往往也被用于為基于Java的應(yīng)用開發(fā)用戶界面。
作為一款穩(wěn)定的、且基于組件的MVC框架,JSF具有一種清晰的體系結(jié)構(gòu),用戶可以用它來明確地區(qū)分出目標(biāo)應(yīng)用的邏輯和表示。
JSF只需通過拖放UI組件,即可幫助開發(fā)人員創(chuàng)建用戶界面。開發(fā)者無需掌握諸如:HTML、CSS、JavaSript之類的高級客戶端技術(shù)知識,便可用它來簡化應(yīng)用程序的表示層,并進(jìn)行開發(fā)。
優(yōu)點(diǎn)
- JSF是Java EE的組成部分。
- 它提供了出色的工具和豐富的庫。
- 由于允許用戶使用Web界面,來擴(kuò)展現(xiàn)有的后端Java代碼,因此用戶不必通過引入新的框架,來更改基本的應(yīng)用程序。
3. Google Web Toolkit
Google Web Toolkit(GWT)是一個(gè)完全免費(fèi)的,流行且開源的Web框架。它可以幫助開發(fā)人員針對Java Ajax應(yīng)用進(jìn)行開發(fā)和調(diào)試。
借助GWT,您可以編寫出各種復(fù)雜的、基于瀏覽器的應(yīng)用程序,而無需具備JavaScript等前端技術(shù)方面的專業(yè)知識。
當(dāng)然,GWT也有一些獨(dú)特的功能,其中包括:跨瀏覽器的可移植性、歷史記錄的管理、國際化、以及書簽。許多Google產(chǎn)品,包括:AdSense、Google Wallet、以及Blogger都是使用GWT編寫的。
優(yōu)點(diǎn)
- 開源且完全免費(fèi)。
- 對開發(fā)人員十分友好。
- 支持常見的Web開發(fā)任務(wù)重用。
- Google API可以在GWT應(yīng)用程序中被使用。
- 提供國際化、跨瀏覽器的可移植性、UI抽象、書簽、以及歷史記錄管理。
4. Vaadin
Vaadin是一種用于簡化Java開發(fā)的Web應(yīng)用框架。它能夠方便開發(fā)人員構(gòu)建出自定義的Web開發(fā)服務(wù)。
該框架的主要優(yōu)勢在于客戶端與服務(wù)器端之間可以流暢地通信。Vaadin可以從Java虛擬機(jī)處直接訪問DOM。作為一個(gè)輕量級的框架,Vaadin Flow可被用于處理服務(wù)器端和客戶端之間的路由通信。Vaadin允許開發(fā)者將Vaadin組件集成到他們正在使用的任何一款I(lǐng)DE中。由于Vaadin是跨平臺類型的框架,因此用戶無需將代碼遷移到其他的平臺上。
在使用Vaadin的過程中,開發(fā)人員不需要具有豐富的HTML、CSS、以及JavaScript經(jīng)驗(yàn)。Vaadin會自動將Java轉(zhuǎn)換為標(biāo)記。
優(yōu)點(diǎn)
- 通過支持拖放、以及其他出色的功能,它簡化了Java應(yīng)用單頁UI的創(chuàng)建。
- 具有WebSocket支持的自動化“服務(wù)器端-客戶端”通信方式。
- 使用MVC(Model-View-Controller)或MVP(Model-View-Presenter),來進(jìn)行數(shù)據(jù)綁定。
- 帶有嵌套路由和參數(shù)支持的路由器。
- 支持包括Kotlin和Scala在內(nèi)的JVM語言。
- 內(nèi)置了對于Spring的支持。
5. Hibernate
Hibernate是一個(gè)對象關(guān)系映射(Object-Relational Mapping,ORM)型數(shù)據(jù)庫,可被用于開發(fā)出穩(wěn)定的Java框架。對象關(guān)系映射往往被用于橫跨兩個(gè)不兼容的系統(tǒng),以連接數(shù)據(jù)。Hibernate在關(guān)系數(shù)據(jù)庫管理系統(tǒng)(relational database management systems,RDBMS)和Java應(yīng)用程序之間,提供了良好的通信。它非常適合工作在復(fù)雜的生態(tài)系統(tǒng)中,并對數(shù)據(jù)流實(shí)現(xiàn)無縫化。
在使用諸如Java之類的面向?qū)ο蟮恼Z言時(shí),開發(fā)人員往往會遇到被稱為“對象關(guān)系阻抗不匹配”或“范例不匹配”的問題。Hibernate為開發(fā)人員提供了一個(gè)可以克服此類問題的框架。
Hibernate的查詢與SQL類似,稱為HQL(Hibernate查詢語言)。Hibernate可以直接將Java類映射到相應(yīng)的數(shù)據(jù)庫表上,反之亦然。Hibernate在其主文件--hibernate.cfg.xml中,提供了使用數(shù)據(jù)庫配置映射的各種Java類信息。
優(yōu)點(diǎn)
- 一種強(qiáng)大的跨數(shù)據(jù)庫解決方案。
- 可擴(kuò)展。
- 數(shù)據(jù)可以輕松地實(shí)現(xiàn)轉(zhuǎn)換。
- 可配置。
總結(jié)
希望上面介紹到的各種最受歡迎的、使用最廣泛的Web應(yīng)用開發(fā)Java框架,能夠幫助您從易用性、配套文檔、以及技術(shù)支持等需求維度,選出適合自己實(shí)際項(xiàng)目的框架。當(dāng)然如果您是一名新手,那么我建議從《Java信息圖(Java Infographic)》一文,快速熟悉并上手Java。
原文標(biāo)題:Top 5 Java Frameworks for Web Application Development,作者:Shivashish Thkaur
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】