0

私のプロジェクト(非常に巨大なプロジェクト)には2つのApplicationContextがあります。データを含む1つの古いxml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="autodetect">
</beans>

ここで、他のプロジェクトapplicatinContextを追加するか、他の方法で追加して、モジュールが影響を受けないようにする必要があります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">


<bean id="positionResponsesDAO"
    class="com.xxx.modules.worklist.DAO.Impl.PositionResponsesDAOImpl">
    <property name="dataSource" ref="dataSource" />
</bean>

<bean id="positionDAO"
    class="com.xxx..modules.worklist.DAO.Impl.PositionDAOImpl">
    <property name="dataSource" ref="dataSource" />
</bean>

<bean id="nextActionDAO"
    class="com.xxx..modules.worklist.DAO.Impl.NextActionDAOImpl">
    <property name="dataSource" ref="dataSource" />
</bean>
     <bean>
      ....... few more
     </bean>

   <bean id="workOrderManager" class="com.xxx.modules.worklist.action.manager.impl.WorkOrderManagerImpl">
    <property name="positionDO" ref="positionDO" />
    <property name="moveWorkOrderDO" ref="moveWorkOrderDO" />
    <property name="nextActionDO" ref="nextActionDO" />
    <property name="positionDAO" ref="positionDAO" />
    <property name="moveResponsesDAO" ref="moveResponsesDAO" />
    <property name="moveWorkOrderDAO" ref="moveWorkOrderDAO" />
    <property name="nextActionDAO" ref="nextActionDAO" />
    <property name="positionResponsesDAO" ref="positionResponsesDAO" />
</bean>


<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
    destroy-method="close">
    <property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />
    <property name="jdbcUrl" value="driverUrl" />
    <property name="user" value="MCMGR" />
    <property name="password" value="MC123" />
</bean>
  </beans>

最初のものは自動配線が有効になっていて、これは手動配線があり、必要です。両方を組み合わせて1つのxmlに入れたり、2つの構成を読み取ったりするにはどうすればよいですか。

4

2 に答える 2

3

2つ以上のアプリケーションコンテキストファイルを読み取ることが難しい理由がわかりません。通常のSpringのイディオムは、レイヤーに従って構成を分割することです。私は通常、永続性、サービス、Webなどの構成を持っています。それがWebアプリケーションの場合は、を使用してそれらすべてを追加するだけContextLoaderListenerです。必要な数の構成ファイルを指定できます。

私は、1つの巨大な構成ファイルを、すべてについて1つの巨大なクラスを見下すのと同じように責任があると考えます。分解はコンピュータサイエンスの基本です。構成を分割することをお勧めします。

注釈ベースの構成とXMLベースの構成を混在させることも問題ではありません。

2つの構成が重複している場合にのみ問題が発生します。競合するBeanのいずれかを削除する必要があります。

于 2012-07-17T11:24:47.900 に答える
1

タグを使用できます<import/>http://forum.springsource.org/showthread.php?41811-Application-Context-and-includeを参照してください

于 2012-07-17T11:22:11.220 に答える