springmvc和struts2的區別
阿新 • • 發佈:2018-12-13
雖然現在struts2用的不多,但是面試的時候可能會問,故在此簡單總結一下:
springmvc | struts2 | ||
1 | 配置 | 無 | 比較多 |
2 | 基於什麼開發 | 方法 | 類 |
3 | 入口 |
servlet |
filter |
4 | 如何管理controller | 預設單例,支援多例 | 只能多例 |
5 | 引數傳遞,儲存 | 值棧(ognl) | 形參 |
6 | 攔截機制 | interceptor | AOP |
7 | AJAX的使用 |
@ResponseBody |
需額外整合外掛或自己寫程式碼 |
8 | Bean的驗證 |
JSR303 |
很繁瑣 |
9 | 方法之間的獨立性 | 獨立 | 雖然也是獨立的,但是
Action變數是共享的,這樣會給閱讀程式碼帶來麻煩。 |
問:springmvc是單例的,高併發下如何實現高效能的?
答:首先單例的作用是避免物件頻繁的建立和銷燬,由此提高效能。
而如何在高併發下保證執行緒安全呢,答案是使用ThreadLocal這個類,此類的key就是Thread例項,這樣雖然仍然是一個例項在操作,但是不同執行緒下的資料是互相隔離的,而且併發越高優勢反而越明顯。
暫時總結這麼多,有什麼錯誤請大家指正。