spring
中的物件scope
屬性表示是物件可以生存的範圍,有以下幾種取值:
單例作用域,也是spring
的預設scope
值。在整個ioc
容器的生命週期中,最多隻會建立出乙個物件例項,任何需要該物件的地方,都是引用的這乙個例項。
這在設計模式中,就是典型的「單例模式」。
"accountservice"
class
="com.something.defaultaccountservice"
/>
"accountservice"
class
="com.something.defaultaccountservice"
scope
="singleton"
/>
原型作用域,它的意思是每次需要該物件的時候,ioc
容器都會建立乙個新的物件例項,不會復用以前建立的物件。
這在設計模式中,就是典型的「原型模式」。
"accountservice"
class
="com.something.defaultaccountservice"
scope
="prototype"
/>
請求作用域,這種作用域只存在於spring web
應用中,是專門針對http
請求設計的,為每個http
請求建立新的物件例項,並且該例項只在當次請求範圍內有效。
"loginaction"
class
="com.something.loginaction"
scope
="request"
/>
會話作用域,這還是只存在於spring web
應用中的作用域,是針對cookies-session
機制設計的,物件的生命週期限定在session
範圍內。
"userpreferences"
class
="com.something.userpreferences"
scope
="session"
/>
應用作用域,這也是針對spring web
應用的,針對的是servlet
應用上下文,也就是servletcontext
物件例項,這種作用域就是繫結到這個例項上的。
class
= scope
=/>
這種作用域也是針對spring web
應用的,只不過這裡針對的通訊協議是websocket
協議,不是http
協議,這兩種協議的區別就不展開了。採用這種作用域的物件,生命週期限定在websocket
範圍內,其實它和request
作用域挺像的,都是站在通訊協議的角度看spring
物件生命週期的。
spring
內部其實還提供有一種單執行緒作用域,但是這種作用域預設是沒有註冊到spring
容器中的,spring
只是提供了這種作用域的實現類。
如果想要使用,需要手動註冊這種作用域:
<?xml version="1.0" encoding="utf-8"?>
xmlns
=""xmlns:xsi
=""xmlns:aop
=""xsi:schemalocation=""
>
class
="org.springframework.beans.factory.config.customscopeconfigurer"
>
name
="scopes"
>
>
key=
"thread"
>
class
="org.springframework.context.support.******threadscope"
/>
entry
>
map>
property
>
bean
>
"thing2"
class
="x.y.thing2"
scope
="thread"
>
name
="name"
value
="rick"
/>
<
aop:scoped-proxy
/>
bean
>
"thing1"
class
="x.y.thing1"
>
name
="thing2"
ref="thing2"
/>
bean
>
beans
>
Spring Bean的作用域
bean的作用域,常用的有兩種,單例singleton 多例prototype 預設情況下,bean都是單例的singleton。在容器初始化的時候就被建立,就這麼乙份。1 單例模式 例如 測試 package com.lynn.spring.test import static org.junit...
Spring bean的作用域
spring框架中,bean 的作用域有如下五種 1.單例 每個spring的ioc容器返回來乙個bean例項 框架預設 2.原型 當每次請求時候都返回來乙個bean例項 3.請求 每個http請求返回來乙個bean例項 4.會話 每個http會話返回來乙個bean例項 5.全域性會話 返回全域性會...
Spring Bean的作用域
在xml檔案中配置bean時,我們可以通過scope為bean配置指定的作用域。bean的作用域分為五種 說明 singleton 單例模式,乙個bean容器中只存在乙個bean例項 prototype 原型模式,每次請求都會產生乙個新的bean例項 request 每次http請求會產生乙個新的b...