1 一,Struts2 2 3 1,每次請求(request)都會實例化一個控制類(Action),由於Model存在與Action中,即action是有狀態的,因此每次請求都要實例化,並且struts2的設計者認爲在強大的垃圾收集器下,用完就扔,並不會影響性能問題,並且還能夠保證線程的安全問題. 4 5 6 7 2,自從struts2以後,裏面的設計除了action以外,大部分功能都圍繞着攔截器設計,若是稱咱們日常的邏輯爲橫性思惟的話,攔截器提供了縱向思惟擴展,在咱們執行action時,能夠任意提供其餘的應用,有點像aop的味道.... 8 9 10 11 3,至於struts2提供了很豐富的界面功能,,這點我覺的不必比較,由於在大多數應用開發中,,大多數人在界面上都運用其餘的第三方如jstl或者extjs等等...這個不做優點比較 12 13 14 15 4,稍微看了下源碼,使用了代理(ActionProxy)以及反射機制進行(dispatch),有些人說這樣的代理是最損耗性能,,,如上面的設計者所說每次都建立一個實例沒事,更況且這個代理呢,,,在java企業應用時,大部分能夠就架構而去性能.. 16 17 18 19 二,spring mvc 20 21 22 23 1,也有提供攔截器,,可是提供的並無sturts2徹底以及強大 24 25 26 27 2,spring提供了annotation的註釋,使咱們更少的去配置xml,並且靈活度很是強,使開發起來更加便利 28 29 30 31 3,spring 提供的handleAdapter,可以使servlet或者其餘本身實現的接口替換進來,至關靈活 32 33 34 35 4,spring提供的mapping,action,view(jsp,velocity等),根據須要能夠實現最大限度的靈活性 36 37 38 39 結:本人認爲,綜合了上述的內容,, 40 41 一個團隊中決定使用哪一種框架開發,應該取決於團隊對某種框架的瞭解程度,,達到更高效的開發才最合適,,沒有最好的框架,只有最適合的框架...