2011-11-26 6 views
7

またはを無効にする方法はありますか?アプリケーションコンテキストでJava Bean定義を無効にしますか?applicationContext.xmlファイルでSpring Bean定義を有効または無効にする方法はありますか?

<bean id="enBean" classs="com.en.bean.BeanName"> 
    <property name="prop1"/> 
</bean> 

あるいは、アプリケーションコンテキストで定義された豆条件付きをロードする方法はありますか?

+1

コメントしますか? – skaffman

答えて

9

春3.1 here

からジョブ

を行うだろう春3.1の新機能@Profileがあり、環境プロファイルの概念を導入しています。一般的な ユースケースは、 開発、QA、本番環境の間で異なるBeanの設定です。典型的な例は、 で、開発中のスタンドアロンDataSourceと対比して、実稼働中のJNDIからDataSourceを参照することです( )。もう1つの例は、容易にオンまたはオフにすることができるプロファイリングのための豆 プロファイルです。 をXMLのbeans要素に追加したり、@Profile アノテーションをコードに追加したりすることができます。 Spring Beanは 複数のプロファイルに割り当てることができます。

<beans profile="dev"> 
    ... 
</beans> 
@Profile("dev") 
public class Bean { 
    ... 
} 

これらのプロファイルは、環境変数、JVM システムプロパティ、web.xmlまたはJNDIでサーブレットを介して指定することができるspring.profiles.active プロパティを介して活性化することができます。これらの プロファイルは、 Environment.setActiveProfiles(String ...)を使用してコードでアクティブ化することもできます。 Beanプロファイルを動作させるには、 ネストされたbeans要素をSpring XMLで使用できるようになりましたが、 はファイルの最後にのみ制限されます。 環境間でできるだけBeanトポロジを維持することをお勧めします。したがって、 アプリケーションは環境間で適切にテストされます。 Environment.containsProperty()メソッドを使用して、さまざまなプロパティー・ソース間でプロパティー を検索します。このプロパティ解決も は、XML Bean定義の$ {placeholder}変数で機能します。

+0

これがユースケースの場合は、@Skaffmanがこの回答のために –

+0

+1と述べたとおりにコメントするか、コメントしてください。プロフィールロック! –

関連する問題