七大JAVA Web框架的優缺點對比

一 、Spring MVC - Java Web 框架

自離首次發佈 10 多年以來,Spring MVC 框架仍然領先於競爭對手。隨着時間的推移,它擴展成一個完整的 MVC 框架,並不斷演變成一個全面的 Java 框架。作爲集成特殊應用科學的分層 J2EE / Java 框架,該框架爲軟件工程師提供了用於 Web 應用程序配置,應用程序開發和安全項目的完整工具包。該框架以其發達的生態系統而聞名,它提供了許多附加選項,從 SOAP Web 服務,REST API 到安全加密和授權。
優點:
增強模塊化的輕量級容器
可以跨各種平臺進行部署
靈活的依賴注入使用
包括 XML,Java 和註釋配置的三路配置
通過 POJO's緩解了注射測試的數據
缺點:
學習曲線比較陡峭
新手實施比較困難
需要花費時間部署

 

二、JSF - Java Web 框架

Oracle 認爲 JSF 是一個實用網絡 Java 框架,旨在簡化基於 Web 的 UI 的集成開發。雖然這個框架在 Java 開發方面不是很好,但是 Oracle 提供的文檔很容易使用。這是一種標準化的技術,擁有豐富的工具和庫,可以爲你在高度複雜的應用程序中鋪平道路。JSF 規範允許啓用標準用戶界面組件的重用和擴展。它減少了創建和維護 Java 應用程序在上運行和在目標客戶端上呈現 UI 應用程序的痛苦。不僅如此,它還提供簡單的數據傳輸和可重用的 UI 組件。
優點
由於它可以創建可重複使用的組件,因此效率更高且一致
支持像 EJB 這樣的 JSF 實現的優秀供應商(IBM,Oracle,JBoss 等)
準備使用像 Apache,Infragistics,Richfaces 等組件
方便開發人員,特別是那些使用 IDE 軟件的人
缺點
陡峭的學習曲線
沒有考慮書籤工具
不可擴展
原始 Ajax 支持
缺乏靈活性

 

三、Google Web Toolkit - Java Web 框架
Google Web Toolkit(GWT)是一個開源開發工具集,使開發人員能夠構建和優化複雜的 JS 前端應用程序。它的主要目標是提供高性能 Web 應用程序的開發,即使開發人員不熟悉 JavaScript,XMLHttpRequest 或瀏覽器等偏冷門的知識。爲了讓其可信度高,谷歌自己的許多產品,包括 AdSense,Hotel Finder,Wallet,AdWords 等都使用 GWT。
優點:
更容易學習
內置 IDE 支持重構 Java 代碼
可以在客戶端大量構建響應式 Web 應用程序,並減少服務器端的瑣事
可以迭代地平滑地從典型的 Web 應用程序遷移到 GWT 應用程序
即使在使用 AJAX 的情況下,也具有內置的瀏覽器後退按鈕支持
缺點:
僅對 Java 開發人員有利,對 PHP 或 .NET 的開發人員沒有太大幫助
由於快速發展的 GWT,有許多版本很難獲得所有功能和接口
編譯速度慢,需要使用專有方法來定義結構

四、Grails - Java Web 框架

Grails 是一個開源的 Java Web 框架,旨在將開發人員的生產力與默認值和 Convention-over-Configuration API 相提並論。它與 Java(JVM)相集成,同時提供強大的功能,包括編譯時元編程,異步編程和領域特定語言。Grails 採用強大的視圖技術,集成的 NoSQL / ORM 支持,插件和 Spring 支持的依賴注入進行更新。讓你可以輕鬆集成並互操作 Java,Java EE 和 JVM 容器。
優點:
Grails 提供了一個快速的開發週期
非常適合小型和中型項目
各種插件可供選擇
簡單而令人易懂的文檔
可以在不重啓服務器的情況下更改配置
缺點:
使用運行時語言可能會很困難
開發多線程應用程序,GORM 可能會出現問題
複雜的集成過程
延遲運行時間

五、Struts 2 - Java Web 框架
Apache 的 Struts 是一個用於開發現代 Java Web 應用程序的開源免費 MVC 框架。它包含一組類和接口,共同協作開發 Web 應用程序。它適用於許多 Java 應用程序的網絡框架,並且受到了很多社區的支持。爲了進一步擴展 Struts Java 框架,Struts 2 作爲後繼者有了很大的改變。這個框架最適合於開發當代 Java EE web 應用程序的工程師,Apache 軟件基金會藉助 Struts 2 爲開發人員提供了一個用於開發面向網絡的,企業級應用程序,並優化整個開發流程的工具。
優點:
沒有線程安全問題
依賴注入使得測試更簡單
它可以使用“對象圖導航語言”(OGNL)
Struts 2 框架的 Servlet 上下文以簡單的地圖形式表示
它支持通過驗證方法進行手動驗證,並且還包含子框架驗證
缺點:
由於它與 Struts 1 完全不同,難以遷移
Struts 2 文檔非常有限
由於文檔管理不善,新用戶很難發現它的優點;

近幾年爆出致命漏洞,導致大量用戶選擇其它框架。

 

六、nutz Java Web框架

Nutz是對於Java程序員來說,除SSH之外的另一個選擇。當然,它是開源的,並且是完全免費的。同時也是商業友好的

優點

輕 -- 當前最新版,整個jar文件共910kB -- 針對JDBC的薄封裝,無緩存。
全 -- 提供了Dao(ORM, SQL管理),Ioc, Aop, Mvc, Json解析等必要功能。
活 -- 各個部分可以獨立使用,比如在Spring裏採用Nutz.Dao,又比如在Nutz.Ioc裏使用Hibernate等。
整 -- 它所有功能均不依賴第三方jar文件。這就意味着:如果一個Web應用,你在WEB-INF/lib下只需要放置一個nutz.jar就夠了。當然,你要使用其它的連接池、數據庫驅動、打印PDF支持等功能,還需要自行添置jar包

缺點

目前只有中文文檔

七、jfinal - Java Web框架
JFinal 是基於Java 語言的極速 web 開發框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴展、Restful。在擁有Java語言所有優勢的同時再擁有ruby、python等動態語言的開發效率。

優點

JFinal架構十分簡單,頂層是一個責任鏈模式變種,ActionHandler 內部結構也十分簡單,是一個Command模式變種。
遵循COC原則,零配置,無xml
ActiveRecord支持,使數據庫開發極致快速
自動加載修改後的java文件,開發過程中無需重啓web server
AOP支持,攔截器配置靈活,功能強大
Plugin體系結構,擴展性強
多視圖支持,支持FreeMarker、JSP、Velocity
強大的Validator後端校驗功能
功能齊全,擁有struts2的絕大部分功能

缺點

沒有英文文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章