我有以下弹簧配置。
<bean id="abcService1" class="com.service.ABCServiceImpl" />
<bean id="abcService2" class="com.service.ABCServiceImpl" />
对于上面的配置,spring会为不同的id创建2个实例吗?如果是,那么虽然两个bean定义都是单例,但我们在上下文中仍然有2个相同对象的实例。这是否意味着它不再是单身人士了?
答案 0 :(得分:2)
是。将创建两个单独的实例。是的,这不再是经典意义上的单例(每个JVM一个实例) - (如果有的话),但是创建的bean(每个都有)具有单一范围(在Spring意义上)。如果您确实想确保给定类的对象始终是单例(每个JVM只有一个实例),请参阅Correct way of making a singleton a Spring bean。
但问题是你真的需要'真正的单身人士'吗?!
答案 1 :(得分:1)
是的,该对象不再是Singleton
。
默认情况下,所有Spring注入的bean都是Singleton
,但是如果用两个不同的ids
定义同一个bean两次,那么Spring将创建two
个实例。