2017-09-20 10 views
0

@Profileでワイルドカードを使用するにはどうすればよいですか?例えば@Profileでワイルドカードを使用する

@Profile("*-from-db") 
private class Foo { 
Foo

spring.profiles.active"-from-db"で終了されたときにBeanが活性化されるべきです。 dbから、qa-from-db、prod-from-dbなどと同じように使用できます。

+1

できません...それを行う独自のルールを作成してください。 –

答えて

0

他の人によると、@Profileアノテーションを使用することはできません。独自のConditionを実装することによってのみ行うことができます。

これを行うには、アノテーション(例:@ConditionalOnProfileSuffix)を作成し、Conditionの実装を作成する必要があります(最も簡単な方法はSpringBootConditionから拡張することです)。あなたが持っている

した後には、例えば、@Conditional注釈を使用して、条件付き注釈に注釈を付ける:

@Conditional(OnProfileSuffixCondition.class) 

SpringBootConditionの実装)OnProfileSuffixConditionの中で、あなたが使用してアクティブなプロファイルを取得することができます。

conditionContext.getEnvironment().getActiveProfiles() 

注釈から値を取得するには、次のものを使用できます。

annotatedTypeMetadata.getAllAnnotationAttributes(ConditionalOnProfileSuffix.class.getName()); 

これはMultiValuedMapを返します。ここで、キーは注釈プロパティ名であり、値は任意のオブジェクトです(型によって異なります)。

関連する問題