7

liferay のソース コードを読んでいると、2 つの xml ファイルが同じ bean-id を使用していることがわかりました。この方法を使用すると、すべてのプロパティが一緒にマージされますか?

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 コンテキストは 1 つの Bean 定義を他の Bean 定義よりも選択します。どちらを選択するかは、初期化中にファイルがコンテキストに供給される順序によって異なります。

ロギングは、ある Bean 定義が別の Bean 定義をオーバーライドしていることを示す必要があります。

于 2009-09-18T07:46:36.537 に答える