理想的Java Web開發(fā)框架
理想的Java Web開發(fā)框架,應該有一個好的IDE開發(fā)工具,架構設計清晰簡單,容易擴展,使用方便,等等等等。現(xiàn)在Java Web開發(fā)框架也不少了,到底哪個好用,下面來大致分析一二:
我使用過JSP、JSF、Struts、Spring MVC、GWT、Scala Lift、Eclipse RAP、Wicket,除了Eclipse RAP外其他的沒有展開很深入的了解,只是用這些不同的框架做同一件事然后進行比較,得出下面的結論(個人觀點,僅供參考):
Java Web開發(fā)框架列表
首先單純使用JSP來開發(fā)項目需要考慮的東西太多,開發(fā)效率不高。 既然有更圓的免費輪子,干嘛不用?
JSF的開發(fā)理念是組件開發(fā),但組件開發(fā)沒有一個好用的IDE開發(fā)工具怎么行,OperaMasks Studio目前覺得還不是非常的好用,我用OperaMasks框架做了一個簡單的頁面(也就是使用了它的TabLayout布局而已,外加一點文字),居然需要下載差不多800kb大小的文件,而且開發(fā)的過程中非常的小心,千萬不要出差錯,如果對JSF原理不是很熟悉的話,挑錯的過程很痛苦。很難對JSF組件進行個性化。雖然說JSF的Sun定義的JEE標準,但有時"標準"這東西不是靈丹妙藥,比如中國有這么多的股市專家,在網(wǎng)絡、電視上指點股市,然而還是有很多聽信了專家的話的股民也沒有賺到多少錢。
Struts 的架構設計的比較簡單,使用基于控制器導航和頁面導航,也很容易擴展,而且與FreeMarker結合可以很容易的自定義標簽庫,非常的方便,不過Struts 1.X配置的步驟太繁瑣了,需要定義對HTTP請求和響應的映射和所有的ActionForm對象等。Struts 2.X好像有所改觀,但是目前為止Struts 2.x的參考文檔好像不多,應用也不廣.
Spring MVC的架構設計的非常優(yōu)秀,可以和其他框架比如JSP、JSTl、FreeMarker、Tiles方便的進行集成,提供了強大的依賴注入功能,不過要想使用它需要先配置一大堆的XML文件,這我可不喜歡,而且對AJAX支持不夠,這讓它損失了很多用戶。
GWT全名叫Google Web Toolkit,從名字上可以看出它目前定位為工具集,不是框架,單純使用GWT開發(fā)Web應用程序好像不是很順手。
Lift是基于Scala的一種Web開發(fā)框架,它的假想競爭對手是基于Groovy的Grails,不過目前來說還不是很成熟,知名度也不高,不過參考Scala的發(fā)展趨勢,Lift應該很有發(fā)展的潛力,值得關注。
其實我覺得Eclipse RAP 框架非常的不錯,是基于Qooxdoo的AJAX框架,從架構到實現(xiàn),都非常的優(yōu)秀,支持OSGI,和插件管理,可以像開發(fā)RCP一樣開發(fā)Web程序,從RCP遷移到RAP也不需要費很大周折,不過目前RAP面對的一個問題是系統(tǒng)的運行速度(如果摩爾定律仍然有效并且也能用于網(wǎng)絡寬帶的發(fā)展速度上的話,那么RAP絕對是一門值得投資的技術)。國外也有公司已經(jīng)開發(fā)出了RAP的商業(yè)產(chǎn)品,我試用了下,非常的驚艷非常的棒.
現(xiàn)在輪到Wicket了,Wicket 是 Sun公司的Swing UI小組開發(fā)出的一種構建和測試動態(tài) Web 頁面的簡化框架,是一種開源、輕量、基于組件的框架,只使用Java和HTML代碼,構建在Servlet API 之上,Wicket通過基于HTML的模板來界定HTML 頁面設計人員和 Java 開發(fā)人員之間的角色界線.模板可使用任何的HTML設計工具生成.,也就是說Wicket可以讓你有更多的精力放在應用程序的業(yè)務邏輯的實現(xiàn)上.如果你有SWT/Swing的開發(fā)經(jīng)驗,對其他的Web框架知道的比較少又像向Web開發(fā)這方面發(fā)展的話,那么Wicket一定非常的適合你。而且Wicket的性能還不錯.提到Wicket就不得不提一下 Tapestry,這兩個框架很多地方相似,你可以在網(wǎng)上看到Tapestry PK Wicket 的帖子,不過有人說"Wicket是重構后的Tapestry".現(xiàn)在你知道該選誰了吧.當然Wicket也有缺點,要掌握Wicket需要了解Java,有面向?qū)ο缶幊趟枷氲脑捳莆誛icket很容易
以上就對各種Java Web開發(fā)框架進行了一些大致的分析,希望對大家有所幫助。
【編輯推薦】