@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.