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


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

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

 @Configuration
 public class MyAutoConfiguration {

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

 }

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

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

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

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

    • value

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

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

      ClassSE<?>[] ignored
      一致する Bean を識別するときに無視する必要がある Bean のクラス型。
      戻り値:
      無視する Bean のクラス型
      導入:
      1.2.5
      デフォルト:
      {}
    • ignoredType

      StringSE[] ignoredType
      一致する Bean を識別するときに無視する必要のある Bean のクラス型名。
      戻り値:
      無視する Bean のクラス型名
      導入:
      1.2.5
      デフォルト:
      {}
    • 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
      デフォルト:
      {}