Struts與Spring MVC的比較

轉載地址:http://wuquanyin1011.iteye.com/blog/693364

前段時間與一名同事一起討論起了spring mvc與struts,今天查看了相應的資料,,對其作了總結:

 

一,Struts2 

 1,每次請求(request)都會實例化一個控制類(Action),因爲Model存在與Action中,即action是有狀態的,所以每次請求都要實例化,而且struts2的設計者認爲在強大的垃圾收集器下,用完就扔,並不會影響性能問題,而且還可以保證線程的安全問題.

 

2,自從struts2之後,裏面的設計除了action之外,大部分功能都圍繞着攔截器設計,如果稱我們平常的邏輯爲橫性思維的話,攔截器提供了縱向思維擴展,在我們執行action時,可以任意提供其他的應用,有點像aop的味道....

 

3,至於struts2提供了很豐富的界面功能,,這點我覺的沒必要比較,因爲在大多數應用開發中,,大多數人在界面上都運用其他的第三方如jstl或者extjs等等...這個不作優勢比較

 

4,稍微看了下源碼,使用了代理(ActionProxy)以及反射機制進行(dispatch),有些人說這樣的代理是最損耗性能,,,如上面的設計者所說每次都創建一個實例沒事,更何況這個代理呢,,,在java企業應用時,大部分可以就架構而去性能..

 

二,spring mvc

 

1,也有提供攔截器,,但是提供的並沒有sturts2完全以及強大

 

2,spring提供了annotation的註釋,使我們更少的去配置xml,而且靈活度非常強,使開發起來更加便利

 

3,spring 提供的handleAdapter,可使servlet或者其他自己實現的接口替換進來,相當靈活

 

4,spring提供的mapping,action,view(jsp,velocity等),根據需要可以實現最大限度的靈活性

 

結:本人認爲,綜合了上述的內容,,

一個團隊中決定使用哪種框架開發,應該取決於團隊對某種框架的瞭解程度,,達到更高效的開發才最合適,,沒有最好的框架,只有最適合的框架...


最近整理了學習材料,有需要的請下載,我放到微信了,方便管理,還能交流,掃描二維碼加入即可




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