アノテーションインターフェース ConditionalOnMissingBean
@TargetSE({TYPESE,METHODSE})
@RetentionSE(RUNTIMESE)
@DocumentedSE
@Conditional(org.springframework.boot.autoconfigure.condition.OnBeanCondition.class)
public @interface ConditionalOnMissingBean
指定された要件を満たす Bean が
BeanFactory
にすでに含まれていない場合にのみ一致する @Conditional
。条件が一致するためには、どの要件も満たす必要はありません。同じ Bean が要件を満たす必要はありません。@Bean
メソッドに配置され、value()
、type()
、name()
、または annotation()
のいずれも指定されていない場合、一致する 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 のクラス型。StringSE[]
一致する Bean を識別するときに無視する必要のある Bean のクラス型名。StringSE[]
チェックする Bean の名前。ClassSE<?>[]
指定された Bean 型をジェネリクスパラメーター内に含む可能性がある追加のクラス。アプリケーションコンテキスト階層(親コンテキスト)を考慮するかどうかを決定する戦略。StringSE[]
チェックする Bean のクラス型名。ClassSE<?>[]
チェックする Bean のクラス型。
要素の詳細
value
ClassSE<?>[] valueチェックする Bean のクラス型。指定された各クラスの Bean がBeanFactory
に含まれていない場合、条件は一致します。オートワイヤー候補ではない Bean やデフォルトの候補ではない Bean は無視されます。- 戻り値:
- チェックする Bean のクラス型
- 関連事項:
- デフォルト:
- {}
type
StringSE[] typeチェックする Bean のクラス型名。指定された各クラスの Bean がBeanFactory
に含まれていない場合、条件は一致します。オートワイヤー候補ではない Bean やデフォルトの候補ではない Bean は無視されます。- 戻り値:
- チェックする 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 に存在しない場合に条件が一致します。オートワイヤ候補ではない Bean やデフォルト候補ではない Bean は無視されます。- 戻り値:
- チェックするクラスレベルのアノテーション型
- 関連事項:
- デフォルト:
- {}
name
StringSE[] nameチェックする Bean の名前。指定された各 Bean 名がBeanFactory
にない場合、条件は一致します。- 戻り値:
- チェックする Bean の名前
- デフォルト:
- {}
search
SearchStrategy searchアプリケーションコンテキスト階層(親コンテキスト)を考慮するかどうかを決定する戦略。- 戻り値:
- 検索戦略
- デフォルト:
- ALL
parameterizedContainer
ClassSE<?>[] parameterizedContainer指定された Bean 型をジェネリクスパラメーター内に含む可能性がある追加のクラス。例:value=Name.class
およびparameterizedContainer=NameRegistration.class
を宣言するアノテーションは、Name
およびNameRegistration<Name>
の両方を検出します。- 戻り値:
- コンテナー型
- 導入:
- 2.1.0
- デフォルト:
- {}