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


@TargetSE({TYPESE,METHODSE}) @RetentionSE(RUNTIMESE) @DocumentedSE @Conditional(org.springframework.boot.autoconfigure.condition.OnBeanCondition.class) public @interface ConditionalOnBean
指定されたすべての要件を満たす Bean がすでに BeanFactory に含まれている場合にのみ一致する @Conditional。条件が一致するためには、すべての要件が満たされている必要がありますが、同じ Bean で満たされている必要はありません。

@Bean メソッドに配置すると、Bean クラスはデフォルトでファクトリメソッドの戻り値の型になります。

 @Configuration
 public class MyAutoConfiguration {

     @ConditionalOnBean
     @Bean
     public MyService myService() {
         ...
     }

 }

上記のサンプルでは、型 MyService の Bean がすでに BeanFactory に含まれている場合、条件は一致します。

この条件は、これまでにアプリケーションコンテキストによって処理された Bean 定義にのみ一致するため、自動構成クラスでのみこの条件を使用することを強くお勧めします。候補 Bean が別の自動構成によって作成される可能性がある場合、この条件を使用するものが実行されることを確認してください。

導入:
1.0.0
作成者:
Phillip Webb
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    ClassSE<? extends AnnotationSE>[]
    チェックする必要のある Bean を修飾するアノテーション型。
    チェックする Bean の名前。
    ClassSE<?>[]
    指定された Bean 型をジェネリクスパラメーター内に含む可能性がある追加のクラス。
    アプリケーションコンテキスト階層(親コンテキスト)を考慮するかどうかを決定する戦略。
    チェックする Bean のクラス型名。
    ClassSE<?>[]
    チェックする Bean のクラス型。
  • 要素の詳細

    • value

      ClassSE<?>[] value
      チェックする必要のある Bean のクラス型。指定されたすべてのクラスの Bean が BeanFactory に含まれている場合、条件は一致します。
      戻り値:
      チェックする Bean のクラス型
      デフォルト:
      {}
    • type

      StringSE[] type
      チェックする必要のある Bean のクラス型名。指定されたすべてのクラスの Bean が BeanFactory に含まれている場合、条件は一致します。
      戻り値:
      チェックする Bean のクラス型名
      デフォルト:
      {}
    • annotation

      ClassSE<? extends AnnotationSE>[] annotation
      チェックする必要がある Bean を装飾するアノテーション型。指定されたすべてのアノテーションが BeanFactory の Bean で定義されている場合、条件は一致します。
      戻り値:
      チェックするクラスレベルのアノテーション型
      デフォルト:
      {}
    • name

      StringSE[] name
      チェックする Bean の名前。指定されたすべての Bean 名が BeanFactory に含まれている場合、条件は一致します。
      戻り値:
      チェックする Bean の名前
      デフォルト:
      {}
    • search

      アプリケーションコンテキスト階層(親コンテキスト)を考慮するかどうかを決定する戦略。
      戻り値:
      検索戦略
      デフォルト:
      ALL
    • parameterizedContainer

      ClassSE<?>[] parameterizedContainer
      指定された Bean 型をジェネリクスパラメーター内に含む可能性がある追加のクラス。例: value=Name.class および parameterizedContainer=NameRegistration.class を宣言するアノテーションは、Name および NameRegistration<Name> の両方を検出します。
      戻り値:
      コンテナー型
      導入:
      2.1.0
      デフォルト:
      {}