SpringMVC初寫(三)Controller的生命周期


Spring框架默認創建的對象的方式是單例,所以業務控制器Controller也是一個單例對象

由此可證明,無論是同一次請求還是同一次會話和不同請求它的對象都是相同的

然而由於對象是單例的,隨之而來的產生了兩個問題:

  1. 請求數據如果放在成員變量上面,會相互影響。
  2. 在處理請求比較多的時候,請求使用同一個對象處理,會導致阻塞

SpringMVC提供了request,session兩個生命周期處理上述的問題

request:每次新的請求,創建一個實例

session:每次會話創建一個新的實例,就是同一個瀏覽器,就使用同一個實例

 

每個請求創建一個實例,類似多例“prototype”

由於每次請求都會產生新的對象,對內存的消耗比較大一般不推薦使用

 

每次會話(Session),創建一個實例

相同瀏覽器訪問默認為同一個會話(Session)

 

注意事項:在配置request,session生命周期時,需要在配置文件中加入<mvc:annotation-driven />標簽,因為由於歷史原因,SpringMVC的內核是使用XML編寫的,而注解的支持類似系統不定的方式加入到框架里面,后來出現了很多注解有,而配置文件沒有的功能,這些功能就通過<mvc:annotation-driven />標簽擴展加入。

常用依賴該標簽的功能如下:

  1. 作用域request、session的支持
  2. 放開靜態資源的訪問
  3. 上傳組建的支持
  4. JSON的支持

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM