Is having two definition for a bean (with same name and class) valid in Spring IOC ?
I am having two bean definition files included in web.xml. See the sample below.
applicationContext-beans1.xml
<bean name="myWao"
class="com.beans.myBean">
</bean>
applicationContext-beans2.xml
<bean name="myWao"
class="com.beans.myBean">
</bean>
I am not facing any issue till now. But, will this possibly impact in the real environment which will be multi threaded and clustered ?
Note: Both the XMLs are loaded as I am able to use the other beans defined(only once) in both the XMLs
It's valid, but you'll find that one bean is overridden by the other. You'll see this in the logs as
Overriding bean definition for...
This behaviour allows you to override previously supplied bean definitions. It affects the static assembly of your app, and doesn't relate to threading/clustering as suggested in your question.
Note that the DefaultListableBeanFactory
allows you to configure this behaviour via setAllowBeanDefinitionOverriding()