12 Bean的作用域

2021-10-12 20:59:21 字數 1818 閱讀 7071

如果設定了懶載入為true,那麼在spring容器啟動的時候不會去例項化這個bean,而是在程式呼叫時才去例項化,預設是false,即spring容器啟動時例項化

1、singleton作用域(單例):

spring ioc容器啟動時,會將所有在singleton作用域中的bean物件例項化,

並設定到單例快取池中

laze-init屬性(懶載入):

如果設定為true,表示懶載入,容器在啟動時不會例項化bean物件,

在程式呼叫時才會例項化,預設是false,表示不懶載入

lazy-init屬性預設關閉的好處:

1、可以提前發現潛在的配置問題

2、bean物件在啟動時就會設定在單例快取池中,使用時不需要再去例項化bean物件,

提高程式性執行效率

什麼物件適合作為單例物件(適合交給ioc容器例項化)

無狀態的物件(不存在改變當前物件狀態的成員變數)

比如controller層,service層,dao層

2、propotype作用域(原型):
spring ioc容器在啟動時,不會將bean物件例項化設定到單例快取池中,

每次例項化物件都會建立乙個新的例項

<

!--propotype作用域--

>

"roleservice"

class

="com.***x.service.roleservice" scope=

"prototype"

/>

<

!--singleton作用域:預設就是單例,可以不寫--

>

"roleservice"

class

="com.***x.service.roleservice" scope=

"singleton"

/>

roleservice類:

!--propotype作用域--

>

"roleservice"

class

="com.***x.service.roleservice" scope=

"prototype"

/>

<

/beans>

測試類:

public

class

roletest

}

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,它是所有...