目前互聯網公司的Java web框架是怎樣的?那麼下面就詳細介紹一下幾大web框架的特色及其對比。Web框架,也許你喜歡它,也許你討厭它,但只有你在真正駕馭它以後才能體會到它的能量!使本身沉浸在一個新型語言中或者一個項目裏,快速擁有高效生產力是十分重要的,學習一個Web框架也一樣如此。下面開始比較和對比幾個Web框架的類別排序(總分爲5分),並從快速原型、框架複雜性、已於使用性、文檔與社區幾個方面給出咱們的評價:
Spring MVC
若是你在尋找一個框架能幫助你快速、整潔地生產出應用,那麼Spring真的不適合你。只要一開始着手,你就會發現它不只是規模龐大並且難以把握。對於一個快速模板,你能夠隨時下載Petclinic工具包併除去你認爲沒必要要的東西,但這須要時間。你必須弄清楚到底什麼纔是重要的東西。
Spring Roo是一個支持Spring框架的子項目;Spring Security是一個安全訪問控制框架,可以爲基於Spring的企業應用系統提供聲明式的安全訪問控制);還有Spring WebFlow,它是一個基於配置的Spring框架,側重於提升Java代碼的生產力、可用性、避免運行超時和進程鎖死,經過附加組件可擁有擴展性。現在,它的功能正在逐漸擴展,潛力巨大。
得分:2.5/5 — 須要提早掌握大量有關Spring的知識。普通的JSP頁面和控制器(Controller)不提供現成組件。
Grails
Grails的評價比較高,每次咱們須要實現中小型CRUD(增長、查詢、更新、刪除)類型的程序,都會考慮使用Grails。Grails配置起來很是快速,而且它提供的框架(代碼生成)節省了大量的時間。約定優於配置原則(Convention over configuration )能夠幫助您拋除幾乎全部配置帶來的麻煩。
Grails默認支持從新加載,但仍然有必定的侷限性(好比它只能從新加載Groovy類)。若是項目中只有一部分使用的是Java,你可能仍然會想到去使用JRebel的。
得分:5/5 — 最高分在這裏。過渡支架(Scaffolding)、約定編程、熱代碼從新加載(hot-code reloading),還有其它什麼是你想要的?web
Vaadin
Vaadin目錄是一個組件倉庫,它包含了全部用戶已經實現、可供他人使用的組件。若是你須要選擇待使用的組件,只須要去下載JAR包並添加到你的項目中,而後在你的代碼裏直接使用JAR包裏提供的優秀模板便可。在寫這篇文章之時,Vaadin有365個組件提供您使用,天天一個!你再也找不到比這更快速的原型開發工具了!
另外,Vaadin的設計提供一種拖放機制,能夠方便地添加須要的組件併爲用戶生成代碼,除此以外還能夠爲你提供想要的精確佈局,甚至連鍵盤都不須要使用了!
得分:4.5/5 — 過渡支架(Scaffolding )和Vaadin目錄都讓人過目不忘。
GWT
雖然有不少可以使用的未封裝裝飾器,但在真實狀況下你可能會在GWT框架下使用Javascript和瀏覽器DOM完成開發。若是你喜歡設計,也可使用GWT內置的設計模式,這是一個簡單的拖放和代碼自動生成界面。
雖然這不是GWT,但咱們的目標是讓開發人員可以高效地開發Web應用程序而再也不專攻JavaScript、XML、HttpRequest以及各類瀏覽器的古怪行爲。
得分:4.5/5 — GWT易於建立和維護Web應用程序組件,內置的編譯器生成的代碼能夠有效地進行編譯併兼容不一樣的瀏覽器。
Wicket
憑藉其清晰的MVC模式、清楚的HTML樣式以及富有魔力的組件,你可使用Wicket簡單、快速地重用組件建立新的應用程序。Wicket採用了組件繼承方式進行擴展,這種方式學習曲線略顯陡峭不是最佳選擇。
每一個組件中的標記文件進行了清晰地分工,控制器決定要顯示的內容,視圖決定如何顯示。這不只縮短了開發時間,也給你的網頁設計師在修改HTML代碼時增長了信心。無需擔憂程序崩潰和程序丟失,很棒吧!
得分:3.5/5 — 使用HTML和組件結構,無需配置文件;組件內容與顯示分離;採用組件繼承。
Play
Play 框架很是簡單、易於上手,這個框架的起源能夠歸結爲,Java開發人員很羨慕Ruby on Rail開發者有一個超級快速的原型開發框架。Play框架有一兩個相似於ROR框架下的Rails組件的二進制組件它用於支架(代碼生成)。這使得Play成爲了一個不那麼常規的Java Web框架。Play 框架的入門文檔是一個很棒的基礎教程,爲開發者提供了一個很是低的門檻。使得他們能夠成爲比較高效的開發者。
得分:5/5 — Play框架有一個很是不錯的文檔,它的代碼生成的框架也是很給力的。
Struts
不少開發者認爲Struts是一項傳統的技術,因此不怎麼期望在這裏能夠經過模生成很酷的代碼。在創建原型前,首先你需進行大量的配置。項目實例仍舊是一個很好的起點,柳暗花明的地方是:Struts有一個Convention插件,強制規定了一些編程約定,而且提供註解來配置URL和其餘的東西。這些都加快了原型的開發。
得分:2/5 — 大量的樣板代碼,沒有內置代碼生成,無需強大的外部工具。
JSF
JSF不是極好的快速開發原型,代碼生成不是內置功能,而且原型開發應用須要開發完整應用程序那麼多的配置。這真的不是JSF的錯,由於它基於Java EE規範。JSF確實有一些實用的Maven原型,然而那隻適用於基本的應用程序。原型也能夠與在線以及Java EE應用部署的服務器一塊兒使用。JSF提高生產力最爲人津津樂道的是那些可以在產生出大量樣板代碼和配置的IDE嚮導。
得分:3/5 – JSF的快速原型依賴相關的工具。Maven和Netbeans提供了原型和嚮導方便開發。
編程