是否可以在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
的异常。
如果我错了,请纠正我的理解?
答案 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不知道你要获取哪个。