@Target(value={TYPE,METHOD})
@Retention(value=RUNTIME)
@Documented
public @interface Conditional
条件とは、Bean 定義を登録する前にプログラムで決定できる状態です(詳細は Condition
を参照)。
@Conditional
アノテーションは、次のいずれかの方法で使用できます。
@Configuration
クラスを含む、@Component
で直接または間接的にアノテーションが付けられたクラスの型レベルのアノテーションとして @Bean
メソッドのメソッドレベルのアノテーションとして @Configuration
クラスが @Conditional
でマークされている場合、そのクラスに関連付けられているすべての @Bean
メソッド、@Import
アノテーション、@ComponentScan
アノテーションが条件に従います。
注 : @Conditional
アノテーションの継承はサポートされていません。スーパークラスまたはオーバーライドされたメソッドからの条件は考慮されません。これらのセマンティクスを強制するために、@Conditional
自体は @Inherited
として宣言されていません。さらに、@Conditional
でメタアノテーションが付けられたカスタム構成のアノテーションは、@Inherited
として宣言してはなりません。
Condition