當下面的豆將instanciated?Instanciate與單身職責範圍的豆
<bean id="a" class="Someclass" lazy-init="true" scope="singleton"/>
在這種情況下Spring是否忽略了「lazy-init」屬性(因爲我們使用了單例作用域)?
加載bean定義時將創建一個新實例。任何人都可以確認嗎?
謝謝。
當下面的豆將instanciated?Instanciate與單身職責範圍的豆
<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的默認範圍是singleton。所以它絕對不會忽略這個屬性。
lazy-init="true"
在啓動時不會創建您的bean。你的bean只在被請求時纔會被創建。
在這種情況下,Spring是否忽略「lazy-init」屬性(因爲我們的 使用單例範圍)?
不,它不會忽略,只有當它被訪問一次,而不是在容器中啓動的對象將被創建。
加載bean定義爲 時,將創建一個新實例。任何人都可以證實嗎?
不,只有在實際需要bean時纔會創建實例。
您可以從here指在春天文檔的相同點和下方是文本(重點煤礦)
懶初始化豆告訴IoC容器,首先,當創建一個bean 實例要求,而不是在啓動。 然而,當一個惰性初始化bean是一個未經過延遲初始化的單例bean的依賴時,ApplicationContext在啓動時創建了延遲初始化bean,因爲它必須滿足單例的依賴關係。懶惰初始化的bean被注入到其他地方的單身bean中,而不是延遲初始化的。