bean的作用域

2021-08-22 10:22:27 字數 530 閱讀 7074

在預設情況下,spring應用上下文總所有bean都是以單例(singleton)的形式建立的。也就是所,不管給定的乙個bean被注入到其他bean多少次,每次所注入的都是同乙個例項。

在大多數情況下,單例bean是很理想的方案。但若使用的類是易變的,它們會保持一些狀態,因此重用是不安全的。

spring定義了多種作用域,可以基於這些作用域建立bean, 包括:

(1)單例(singleton):在整個應用中,只建立bean的乙個例項。

(2)原型(prototype):每次注入或者通過spring應用上下文獲取的時候,都會建立乙個新的bean例項。

(3)會話(session):在web應用中,為每個會話建立乙個bean例項。

(4)請求(request):在web應用中,為每個請求建立乙個bean例項。

注:單例是預設的作用域,但是對於易變的型別,這並不合適。如果選擇其他的作用域,要使用@scope註解,它可以與@component或@bean一起使用。如果是使用xml來配置bean的話,可以使用元素的scope屬性來設定作用域。

Bean的作用域

bean元素有乙個scope屬性,用於定義bean的作用域,該屬性有如下五個值 1 singleton 單例模式,在整個spring ioc容器中,單例模式作用域的bean都將只生成乙個例項。一般spring容器預設bean的作用域為singleton 2 prototype 與singleton相...

Bean的作用域

singleton 單例 代表在spring ioc容器中只有乙個bean例項 預設的scope prototype 多例每一次從 spring 容器中獲取時,都會返回乙個新的例項 request 用在web開發中,將bean物件request.setattribute 儲存到request域中 s...

Bean的作用域

在spring中,可以在元素的scope屬性裡設定bean的作用域 預設情況下,spring只為每個在ioc容器裡宣告的bean建立唯一乙個例項,整個ioc容器範圍內都能共享該例項 所有後續的getbean 呼叫和bean引用都將返回這個唯一的bean例項。該作用域被稱為singleton,它是所有...