![](/img/trans.png)
[英]Why are there two instances created of a singleton Java class?
[英]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的正確方法 。
但問題是你真的需要'真正的單身人士'嗎?!
是的,該對象將不再是Singleton
。
默認情況下,所有Spring注入的bean都是Singleton
,但是如果用兩個不同的ids
定義同一個bean兩次,那么Spring將創建two
實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.