@Profileでワイルドカードを使用するにはどうすればよいですか?例えば@Profileでワイルドカードを使用する
:
@Profile("*-from-db")
private class Foo {
Foo
spring.profiles.active
が"-from-db"
で終了されたときにBeanが活性化されるべきです。 dbから、qa-from-db、prod-from-dbなどと同じように使用できます。
@Profileでワイルドカードを使用するにはどうすればよいですか?例えば@Profileでワイルドカードを使用する
:
@Profile("*-from-db")
private class Foo {
Foo
spring.profiles.active
が"-from-db"
で終了されたときにBeanが活性化されるべきです。 dbから、qa-from-db、prod-from-dbなどと同じように使用できます。
@Profileアノテーションのみで行う方法はありません。条件付きマッチャーで試すことができます。 とこの1つを確認してくださいhttps://raymondhlee.wordpress.com/2015/05/31/using-spring-4-condition-to-control-bean-registration/。 正しい方向に導くはずです。
他の人によると、@Profile
アノテーションを使用することはできません。独自のCondition
を実装することによってのみ行うことができます。
これを行うには、アノテーション(例:@ConditionalOnProfileSuffix
)を作成し、Condition
の実装を作成する必要があります(最も簡単な方法はSpringBootCondition
から拡張することです)。あなたが持っている
した後には、例えば、@Conditional
注釈を使用して、条件付き注釈に注釈を付ける:
@Conditional(OnProfileSuffixCondition.class)
(SpringBootCondition
の実装)OnProfileSuffixCondition
の中で、あなたが使用してアクティブなプロファイルを取得することができます。
conditionContext.getEnvironment().getActiveProfiles()
注釈から値を取得するには、次のものを使用できます。
annotatedTypeMetadata.getAllAnnotationAttributes(ConditionalOnProfileSuffix.class.getName());
これはMultiValuedMap
を返します。ここで、キーは注釈プロパティ名であり、値は任意のオブジェクトです(型によって異なります)。
できません...それを行う独自のルールを作成してください。 –