我正在阅读liferay源代码并发现使用相同bean-id的2个xml文件。如果使用这种方式会将所有属性合并在一起吗?
dynamic-data-spring
----------------------
<bean id="liferayDataSource" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
<property name="targetDataSource">
<bean class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="targetSource" ref="dynamicDataSourceTargetSource" />
</bean>
</property>
</bean>
infrastructure-spring.xml
----------------------
<bean id="liferayDataSource" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
<property name="targetDataSource">
<bean class="com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean">
<property name="propertyPrefix" value="jdbc.default." />
</bean>
</property>
</bean>
答案 0 :(得分:7)
不,Spring上下文将选择一个bean定义而不是另一个。它选择哪一个取决于在初始化期间文件被送入上下文的顺序。
日志记录应该表明一个bean定义覆盖了另一个bean。