[英]Instanciate a bean with singleton scope
下面的bean何時會被實例化?
<bean id="a" class="Someclass" lazy-init="true" scope="singleton"/>
在這種情況下,Spring是否會忽略“ lazy-init”屬性(因為我們使用單例作用域)?
加載Bean定義后,將創建一個新實例。 有人可以確認嗎?
謝謝。
這個
<bean id="a" class="Someclass" lazy-init="true" scope="singleton"/>
和這個
<bean id="a" class="Someclass" lazy-init="true"/>
都一樣 Spring bean的默認范圍是單例。 因此,它絕對不會忽略此屬性。
lazy-init="true"
不會在啟動時創建您的bean。 僅在需要時才創建您的bean。
在這種情況下,Spring是否會忽略“ lazy-init”屬性(因為我們使用單例作用域)?
不,它不會忽略,僅在第一次訪問對象時才會創建對象,而不是在容器啟動期間創建對象。
加載Bean定義后,將創建一個新實例。 有人可以確認嗎?
不,僅當實際需要bean時才創建實例。
您可以從此處引用彈簧文檔中的同一點,下面是文本(強調我的意思)
延遲初始化的bean告訴IoC容器在首次請求時(而不是在啟動時)創建一個bean實例。 但是,當延遲初始化的bean是未延遲初始化的單例bean的依賴項時,ApplicationContext會在啟動時創建延遲初始化的bean ,因為它必須滿足單例的依賴關系。 延遲初始化的bean被注入到其他未延遲初始化的單例bean中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.