2012-02-12 24 views
1

今私は、Spring RemotingのRMI/SOAP/JMS/Hessian/Burlap/HttpInvokerエクスポータを使用して、アプリケーションのサービスレイヤーを公開しています。私が望むのは、ユーザーが何らかの方法でこれらのリモーティング・メカニズムのどれを有効にしたいのかを定義し、それらのエクスポート・ビーンのみを作成することです。条件付きで春にBeanを作成する

私は、春のアプリケーションコンテキストxmlがxmlの部分の周りに条件ブロックを入れることをサポートしていることを期待していました。しかし、これまで見てきたことから、標準的な春の配布には、このようなことをすることはできません。

私がやろうとしていることを達成する他の方法はありますか?

+3

これは、設定を別のファイルに入れて、興味のあるものだけをロードするだけでは十分ではありませんか? –

+0

質問に関連しないリモートタグを削除しました –

+0

重複している可能性があります(または少なくとも関連性があります):http://stackoverflow.com/questions/29844271/conditional-spring-bean-creation – bacar

答えて

6

...

ラルフがあるのでSpring 3.1以降はプロファイルを持っていると言っています...しかし、鍵は環境ベースのBeanを別の構成ファイルに置くべきだということを理解していることです。dev-beans.xml、prod-beansなどがあります。 xml ...そして、あなたの主要な春のファイルでは、あなたが使用している環境に基づいて適切なものを起動するだけです...プロファイルはそのようにしかできないテクニックです...しかし、システム環境変数を使用するか、ビルド中のパラメータを渡して、使用するBeansを決定する

1

Spring 3.1にはProfileの概念があります。あなたはそれらを使うことができます。私はあなたが私はこれらの他のDEVで、この豆を使用したい生産のためでは...と、お使いの環境に基づいてアプリケーションを構成するために探していると仮定するつもりです

3

これは、Spring @Configuration Beanを使用することで実現できます。したがって、BeanをJavaコードで構築できます。あなたはどこからユーザー設定を取得する必要があります。もちろん、

@Configuration 
public class AppConfig { 
    @Bean 
    public MyService myService() { 
     if (userSettingIshessian) { 
      return new HessianExporter(); 
     }else { 
      return new BurlapExporter(); 
     } 
    } 
} 

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/beans.html#beans-javaを参照)、システムパラメータは、簡単に、または設定ファイル、または何か他のものになります。

+2

Springのジレンマ:設定ファイルを置き換えます別の構成ファイルに依存するクラスを使用します。 –

関連する問題