@TargetSE(valueSE={TYPESE,METHODSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE @Conditional(value=org.springframework.boot.autoconfigure.condition.OnBeanCondition.class) public @interface ConditionalOnMissingBean
BeanFactory
にすでに含まれていない場合にのみ一致する Conditional
。条件が一致するためには、どの要件も満たす必要はありません。同じ Bean が要件を満たす必要はありません。@Bean
メソッドに配置すると、Bean クラスはデフォルトでファクトリメソッドの戻り値の型になります。
@Configuration public class MyAutoConfiguration { @ConditionalOnMissingBean @Bean public MyService myService() { ... } }
上記のサンプルでは、型 MyService
の Bean が BeanFactory
にすでに含まれていない場合に条件が一致します。
この条件は、これまでにアプリケーションコンテキストによって処理された Bean 定義にのみ一致するため、自動構成クラスでのみこの条件を使用することを強くお勧めします。候補 Bean が別の自動構成によって作成される可能性がある場合、この条件を使用するものが実行されることを確認してください。
修飾子と型 | オプションの要素と説明 |
---|---|
ClassSE<? extends AnnotationSE>[] | annotation チェックする必要のある Bean を修飾するアノテーション型。 |
ClassSE<?>[] | ignored 一致する Bean を識別するときに無視する必要がある Bean のクラス型。 |
StringSE[] | ignoredType 一致する Bean を識別するときに無視する必要のある Bean のクラス型名。 |
StringSE[] | name チェックする Bean の名前。 |
ClassSE<?>[] | parameterizedContainer 指定された Bean 型をジェネリクスパラメーター内に含む可能性がある追加のクラス。 |
SearchStrategy | search アプリケーションコンテキスト階層(親コンテキスト)を考慮するかどうかを決定する戦略。 |
StringSE[] | type チェックする Bean のクラス型名。 |
ClassSE<?>[] | value チェックする Bean のクラス型。 |
public abstract ClassSE<?>[] value
BeanFactory
に含まれていない場合、条件は一致します。public abstract StringSE[] type
BeanFactory
に含まれていない場合、条件は一致します。public abstract ClassSE<?>[] ignored
public abstract StringSE[] ignoredType
public abstract ClassSE<? extends AnnotationSE>[] annotation
BeanFactory
のすべての Bean にない場合、条件は一致します。public abstract StringSE[] name
BeanFactory
にない場合、条件は一致します。public abstract SearchStrategy search
public abstract ClassSE<?>[] parameterizedContainer
value=Name.class
および parameterizedContainer=NameRegistration.class
を宣言するアノテーションは、Name
および NameRegistration<Name>
の両方を検出します。Copyright © 2019 Pivotal Software, Inc.. All rights reserved.