簡體   English   中英

Spring單例類實例創建了嗎?

[英]Spring singleton class instances created?

我有以下彈簧配置。

<bean id="abcService1" class="com.service.ABCServiceImpl" />
<bean id="abcService2" class="com.service.ABCServiceImpl" />

對於上面的配置,spring會為不同的id創建2個實例嗎?如果是,那么盡管兩個bean定義都是單例,我們在上下文中仍然有2個同一個對象的實例。 這是否意味着它不再是單身人士了?

是。 將創建兩個單獨的實例。 是的,這不再是經典意義上的單例(每個JVM一個實例) - (如果有的話),但是創建的bean(每個都有)具有單一范圍(在Spring意義上)。 如果你真的想確保給定類的一個對象總是一個單例(每個JVM只有一個實例),請參閱將單例作為一個Spring bean的正確方法

但問題是你真的需要'真正的單身人士'嗎?!

http://docs.spring.io/spring/docs/3.2.1.RELEASE/spring-framework-reference/html/beans.html#beans-factory-scopes

是的,該對象將不再是Singleton

默認情況下,所有Spring注入的bean都是Singleton ,但是如果用兩個不同的ids定義同一個bean兩次,那么Spring將創建two實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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