Spring中對scope的意思

2021-08-31 05:55:53 字數 604 閱讀 8785

預設情況下,從 bean工廠所取得的例項為singleton(bean的singleton屬性)

1.singleton: spring容器只存在乙個共享的bean例項,預設的配置。

2.prototype: 每次對bean的請求都會建立乙個新的bean例項。

二者選擇的原則:有狀態的bean都使用prototype作用域,而對無狀態的bean則應該使用singleton作用域。

沒有狀態資訊的物件的用singleton 如dao

有狀態資訊的且不可共享的用prototype 如普通action

在 spring2.0中除了以前的singleton和prototype外又加入了三個新的web作用域,分別為request、session和 global session。如果你希望容器裡的某個bean擁有其中某種新的web作用域,除了在bean級上配置相應的scope屬性,還必須在容器級做乙個額外 的初始化配置。

即在web應用的web.xml中增加這麼乙個contextlistener: org.springframework.web.context.request.requestcontextlistener 以上是針對servlet 2.4以後的版本。比如request作用域:

spring中的屬性scope

之前在開發過程中遇到了乙個問題,當request發起下乙個請求的時候,action中的屬性值並沒有清除,而是繼續採用上次使用過的引數值進行查詢並響應,導致資料查詢不真實或失敗。對此,有同事告訴我說,需要在spring配置檔案的bean中新增屬性scope prototype。結果還真的有用。下面是我...

Spring中的 scope註解

預設是單例模式,即scope singleton 另外scope還有prototype request session global session作用域。scope prototype 多例 scope預設是單例模式 singleton 如果需要設定的話 scope prototype 1.sin...

Spring中的 scope註解

預設是單例模式,即scope singleton 另外scope還有prototype request session global session作用域。scope prototype 多例 scope預設是單例模式 singleton 如果需要設定的話 scope prototype 1.sin...