多个bean指的是同一个类?

时间:2015-03-16 11:55:07

标签: java spring dependency-injection

在Spring配置文件中,我为同一个类创建了两个bean,即

<bean id="emp1" class="Employee">
    <property name="age" value="10"></property>
</bean>

<bean id="emp2" class="Employee">
    <property name="age" value="15"></property>
</bean>

默认情况下,两者的范围都是单身&#39;但是当我打印Employee对象时,它会显示两个不同的对象。这怎么可能?我的意思是 如果bean范围是单例,那么它如何创建两个不同的对象?

1 个答案:

答案 0 :(得分:7)

它应该归还2名员工。 Singleton在春天的含义略有不同 - 它并不是要保证每个类别有1个实例。 它只是意味着每次调用&#34; context.getBean(&#34; emp1&#34;)&#34;你将获得相同的对象,而不是&#34;原型&#34;这意味着每次调用context.getBean时获取不同的实例(&#34; emp1&#34;)

试试这个

Object x1=context.getBean("emp1");
Object x2=context.getBean("emp1");

如果&#34; emp1&#34;是单身,你会得到相同的参考。如果原型你将获得两个单独的实例。