1

次の春の構成を作成しようとしています

<beans profile="profile1">
    <jms:outbound-channel-adapter id="sampleId"/>
</beans>

<beans profile="profile2">
    <jms:outbound-channel-adapter id="sampleId"/>
</beans>

(jms:outbound-channel-adapter は、Spring 統合の名前空間です)

そのようなコンテキストを作成すると、Bean ID の重複例外が発生します...

理由はありますか?

edit.. (アクティブなプロファイルは profile1 に設定されます)

4

2 に答える 2

0

現在のコンテキストのアクティブなプロファイルを提供する必要があります。このトークンは次のように設定できます。
環境変数
JVMプロパティ
Webパラメータ
プログラム
によるSpringは、Spring.profilesで指定されていない場合にデフォルトプロファイルを設定するために使用できるトークンspring.profiles.defaultも検索します。アクティブ。

例:

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
    <param-name>spring.profiles.active</param-name>
    <param-value>web-dev</param-value>
    </init-param>
</servlet>

ここで、applicationContextは次のようになります。

<beans profile="web-dev, test-dev">
        <import resource="trace-context.xml"/>
        <import resource="spring-data-jpa.xml"/>
        <import resource="spring-security-roles.xml" />
    </beans>

    <beans profile="web-dev">
        <bean id="deployProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"
                p:location="/WEB-INF/spring.properties" />

        <import resource="spring-cache.xml"/>
        <import resource="tiles-context.xml" />
        <import resource="themes-context.xml" />
    </beans>  

    <beans profile="test-dev">
        <bean id="deployProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"
                p:location="classpath:spring.properties" />
    </beans>
于 2012-10-01T08:54:27.683 に答える
0

関連するすべての xsd 宣言が >= 3.1 バージョンを使用していることを確認してください。Spring バージョン 3.1 でプロファイル機能が追加されました。Bean および jms 名前空間の最小セット。同様の SO の質問に対する私の回答も参照してください

于 2015-10-07T23:17:03.867 に答える