7

我正在阅读 liferay 源代码,发现 2 个使用相同 bean-id 的 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>
4

1 回答 1

7

不,Spring 上下文将选择一个 bean 定义而不是另一个。它选择哪一个取决于在初始化期间将文件输入到上下文中的顺序。

日志记录应该表明一个 bean 定义覆盖了另一个。

于 2009-09-18T07:46:36.537 回答