春豆创作

时间:2014-03-18 18:03:09

标签: spring

是否可以在spring中创建具有相同id且具有不同属性的相同类的bean?像:

 <bean id ="a" class= "com.tofek.A"
   <property message = "khan"/>
</bean> 

<bean id = "a" class = "com.tofek.A"
  <property message="tofek"/>
</bean>

根据我的理解,它将创建,但在使用getBean()方法获取bean时,它将提供类似NoBeanDefinitionFoundException的异常。

如果我错了,请纠正我的理解?

1 个答案:

答案 0 :(得分:0)

确保您的春季环境成功加载。

回答你的问题。您可以在两个不同的sprintContext配置中拥有两个相同的bean定义。

第二个上下文中的bean将覆盖第一个创建的bean。 例如:

context1.xml

<bean id="bean1" class="org.springframework.beans.TestBean"/>

context2.xml

<bean id="bean1" class="org.springframework.beans.TestBean"/>

然后,来自context2.xml的bean将覆盖由contex1.xml创建的bean。 它当然取决于创建弹簧上下文的顺序。这些过滤器会覆盖之前制作的那些。

您可以使用getBean()按类型或名称获取bean。在这种情况下,两个bean都具有相同的id和类型,spring不知道你要获取哪个。