簡體   English   中英

實例化具有單例作用域的bean

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM