アノテーションインターフェース Conditional


@TargetSE({TYPESE,METHODSE}) @RetentionSE(RUNTIMESE) @DocumentedSE public @interface Conditional
指定されたすべての条件が一致した場合にのみコンポーネントが登録に適格であることを示します。

条件とは、Bean 定義を登録する前にプログラムで決定できる状態です(詳細は Condition を参照)。

@Conditional アノテーションは、次のいずれかの方法で使用できます。

  • @Configuration クラスを含む、@Component で直接または間接的にアノテーションが付けられたクラスの型レベルのアノテーションとして
  • カスタムステレオタイプアノテーションを作成するためのメタアノテーションとして
  • @Bean メソッドのメソッドレベルのアノテーションとして

@Configuration クラスが @Conditional でマークされている場合、そのクラスに関連付けられているすべての @Bean メソッド、@Import アノテーション、@ComponentScan アノテーションが条件に従います。

@Conditional アノテーションの継承はサポートされていません。スーパークラスまたはオーバーライドされたメソッドからの条件は考慮されません。これらのセマンティクスを実施するために、@Conditional 自体は @InheritedSE として宣言されていません。さらに、@Conditional でメタアノテーションが付けられたカスタム合成アノテーションは、@Inherited として宣言してはなりません。

導入:
4.0
作成者:
Phillip Webb, Sam Brannen
関連事項:
  • 必須定数のサマリー

    必須要素
    修飾子と型
    必須要素
    説明
    ClassSE<? extends Condition>[]
    コンポーネントを登録するために一致する必要があるすべての Condition クラス。
  • 要素の詳細