@TargetSE(valueSE={TYPESE,METHODSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE public @interface Conditional
条件とは、Bean 定義を登録する前にプログラムで決定できる状態です(詳細は Condition
を参照)。
@Conditional
アノテーションは、次のいずれかの方法で使用できます。
@Configuration
クラスを含む、@Component
で直接または間接的にアノテーションが付けられたクラスの型レベルのアノテーションとして @Bean
メソッドのメソッドレベルのアノテーションとして @Configuration
クラスが @Conditional
でマークされている場合、そのクラスに関連付けられているすべての @Bean
メソッド、@Import
アノテーション、@ComponentScan
アノテーションが条件に従います。
注 : @Conditional
アノテーションの継承はサポートされていません。スーパークラスまたはオーバーライドされたメソッドからの条件は考慮されません。これらのセマンティクスを実施するために、@Conditional
自体は @Inherited
SE として宣言されていません。さらに、@Conditional
でメタアノテーションが付けられたカスタム合成アノテーションは、@Inherited
として宣言してはなりません。
Condition
修飾子と型 | 必須要素と説明 |
---|---|
ClassSE<? extends Condition>[] | value コンポーネントを登録するために一致する必要があるすべての Conditions 。 |
public abstract ClassSE<? extends Condition>[] value
Conditions
。