如果設定了懶載入為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,它是所有...