spring scope="prototype", scope="session"
轉自: http://www.cnblogs.com/JemBai/archive/2010/11/10/1873954.html
<bean id="personAction" scope="prototype" class="quickstart.action.PersonAction">
<constructor-arg ref="personService" />
</bean>
但是對那些Dao的實現類推介scope=“singleton” ,因為這些類沒有狀態,用singleton只需維護一個例項,顯然效能高一些。
在配置檔案中,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", scope="session"
轉自: http://www.cnblogs.com/JemBai/archive/2010/11/10/1873954.html <bean id="personAction" scope="prototype" class="quickstart.action.PersonAc
SPRING中屬性SCOPE的prototype是什麽意思
裝配 重要 proto 客戶端 好的 type 被調用 初始 初始化 prototype作用域部署的bean,每一次請求(將其註入到另一個bean中,或者以程序的方式調用容器的getBean()方法)都會產生一個新的bean實例,相當與一個new的操作,對於prototyp
Spring Bean 的scope什麼時候設定為prototype,什麼時候設定為singleton?
原因:1.Spring中Bean的配置,如果不顯式指明scope的值,那麼預設為單例singleton。也就是說這個Bean只會新建一個例項。 2.設定為prototype之後,就會建立多個例項,可以理
Spring Bean 的 scope屬性為何要設定為prototype
<bean id = "testAction" class = "com.kewen.xxxAction" scope = "prototype"/> Spring Bean中為何有的地方要將scope屬性設為prototype? 先簡單說一下兩個屬性值:&n
Spring作用域 (Scope:Request,Session,Thread,Refresh) 的代理機制原始碼解析
Spring有很多Scope,比如Singleton,Prototype,Request,Session,SpringCloud又新增了Thread,Refresh。預設的Scope是Singleton,Spring容器內最多的就是Singleton型別的Bea
Spring多利模式 註解@Scope("prototype")和xml配置scope="prototype"
這裡牽扯到單利模式的執行緒安全的設計。 我們知道sping ioc注入的bean;一般都是無狀態的【dao,service等,這種不會牽涉到值或者狀態改變的情況】,也就是在多執行緒下可以基本保證執行緒
初學spring init-method="init" destroy-method="destroy" scope="prototype"
beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmln
spring mvc 設定@Scope("prototype")
spring中bean的scope屬性,有如下5種類型: singleton 表示在spring容器中的單例,通過spring容器獲得該bean時總是返回唯一的例項prototype表示每次獲得bean都會生成一個新的物件request表示在一次http請求內有效(只適
spring註解中@Scope("prototype")的重要性
當我們在一個ACTION類裡面寫很多個方法的時候(其實是一種按功能劃分模組程式設計的思想),每個方法的返回狀態可能不一樣, 如果ACTION中不@Scope("prototype"),有可能報找不到X
Spring中的scope配置和@Scope註解
article rac 新的 clas 文件中 常用 sdn web應用 req Scope,也稱作用域,在 Spring IoC 容器是指其創建的 Bean 對象相對於其他 Bean 對象的請求可見範圍。在 Spring IoC 容器中具有以下幾種作用域:基本作用域(si
【Spring】的@scope註解作用
一般我們看程式碼都少會寫這個註解,因為預設不寫是單例模式,即scope="singleton"。另外scope還有prototype、request、session、global session作用域。 scope="prototype"多例 @scope預設是單例模式(singleto
spring中的scope詳解
0.思維導圖 1. scope概論 spring中scope是一個非常關鍵的概念,簡單說就是物件在spring容器(IOC容器)中的生命週期,也可以理解為物件在spring容器中的建立方式。
spring 中的 scope 詳解
1. scope概論 spring中scope是一個非常關鍵的概念,簡單說就是物件在spring容器(IOC容器)中的生命週期,也可以理解為物件在spring容器中的建立方式。 2. scop
Spring註解驅動 @Scope和@Lazy 使用說明
最早期開發spring整合專案,太多的配置檔案開發起來效率低,目前企業採用全註解方式進行開發,本章講解@Configution 和 @Bean的配置使用,達到spring傳統的配置檔案方式 步驟一:新建立一個maven工程 步驟二:新增依賴 <dependency
Spring中註解@Scope詳解
Scope是spring中的一個註解,可以作為類註解,也可以作為方法註解,它有五個作用域,分別是singleton、prototype、request、session、global session,spring中的bean預設是使用singleton,即單例模式
@Scope("prototype")其實很重要
之前的聯想G455換掉了,換成了惠普的,配置高很多,價錢低了1000多,高科技產品更新太快了! 當我們在一個ACTION類裡面寫很多個方法的時候(其實是一種按功能劃分模組程式設計的思想),每個方法的返回狀態可能不一樣,如果ACTION中不@Scope("prototype"
【Spring註解】@Scope 作用域和@Lazy懶載入
[email protected] 作用域和@Lazy懶載入 @Scope來表示註冊物件的作用域。 @Scope的四種類型 //多例模式,只有在使用類時才註冊物件
springboot <scope>providedscope>
比如這樣一個依賴,發不到伺服器後伺服器本身也有,那麼加上scope之後打包時就不會把這個打包進去上傳,但是不妨礙自己本地測試.一般用在去除springboot自帶的tomcat時候用
Spring整合hibernate,session什麼時候關閉
<bean id="sessionFactory_hotelbeds" class="org.springframework.orm.hibernate4.LocalSessionFactoryB
spring普通類獲取session和request物件
在使用spring時,經常需要在普通類中獲取session、request物件。 比如一些AOP攔截器類,在有使用struts2時,因為struts2有一個介面使用org.apache.struts2.ServletActionContext即可很方便的取到session物件。用法: Ser