struts+spring action應配置為scope="prototype"(轉)
struts+spring action應配置為scope="prototype"
<bean id="personAction" scope="prototype" class="quickstart.action.PersonAction">
<constructor-arg ref="personService" />
</bean>
在配置檔案中,bean預設是單例模式,應用伺服器啟動後就會立即建立bean,以後就可以重複使用。
這帶來一個問題,bean的全域性變數被賦值以後,在下一次使用時會把值帶過去。也就是說,bean是有狀態的。
在web狀態下,請求是多執行緒的,全域性變數可能會被不同的執行緒修改,尤其在併發時會帶來意想不到的bug。
而在開發時,訪問量很小,不存在併發、多執行緒的問題,程式設計師極有可能會忽視這個問題。
所以在配置action bean時,應使用scope="prototype",為每一次request建立一個新的action例項。這
符合struts2的要求,struts2為每一個request建立一個新的action例項。當request結束,bean就會被jvm
銷燬,作為垃圾收回。
當然,也可以設定scope="session",也能避免web中action的併發問題,只為當前使用者建立一次bean,直至
session消失。在這種情況下,對當前使用者而言,bean是有狀態的。好處就是少建立bean的例項,有那麼一
點點效能的提升
應用場景:
1. 多數情況下應使用prototype
2. 若使用者不多,且頻繁操作(頻繁使用action),硬體一般,可以考慮session,興許還能提升一點點效能。
相關文章
- Spring配置時加scope="prototype"的原因Spring
- 新手請教:action 中 scope="session"之後怎麼用?Session
- 孿生兄弟(Prototype) (轉)
- Struts+Spring整合3Spring
- [我]Struts+Spring整合Spring
- Redis In Action 筆記(六):使用 Redis 作為應用程式元件Redis筆記元件
- Object.prototype.__proto__, [[prototype]] 和 prototypeObject
- 如何組合Struts+Spring?Spring
- [我]Struts+Spring的整合Spring
- 為什麼使用Object.prototype.hasOwnPropertyObject
- action中json的應用JSON
- Struts2在web.xml中配置為“/*”和“*.action,*.jsp”的差別WebXMLJS
- 淺析"對arguments物件使用Array.prototype.slice()可以將其轉化為陣列"物件陣列
- Solaris 網路應用配置(轉)
- Action裡result型別Stream的引數配置型別
- 如何為 Flask Web 應用配置 NginxFlaskWebNginx
- SpringMVC 執行一個action之後跳轉到下一個actionSpringMVC
- [struts]當專案配置為根路徑時發生的action的路徑問題
- JavaScript prototypeJavaScript
- Laravel scope用法Laravel
- js prototype原型應用簡單例項程式碼JS原型單例
- 深入探索Factory模式與Prototype模式的異同 (轉)模式
- VB.Net中文教程(11) Prototype樣式 (轉)
- 足球戰術->單刀赴會之prototype篇 (轉)
- Maven-POM中的各種scope的行為總結Maven
- AngularJS中監視Scope變數以及外部呼叫Scope方法AngularJS變數
- struts/Servlet,action轉到jsp後,路徑問題(struts2,jsp路徑,action路徑,action跳轉,相對路徑,絕對路徑)...ServletJS
- angular中的scopeAngular
- Prototype/ConstructorStruct
- JavaScript prototype 原型JavaScript原型
- JavaScript:原型(prototype)JavaScript原型
- 關於prototype
- IdentityServer4 4.x版本 配置Scope的正確姿勢IDEServer
- spring應用手冊-IOC(XML配置實現)-(36)-context:component-scan的scope-resolver屬性SpringXMLContext
- Javascript玩轉Prototype(一)——先談C#原型模式JavaScriptC#原型模式
- 物理裸機配置如何轉換為天翼云云主機配置
- 終於搞懂Spring中Scope為Request和Session的Bean了SpringSessionBean
- SSH整合開發時Scope為預設時現象與原理