アノテーションインターフェース ConditionalOnBean
@TargetSE({TYPESE,METHODSE})
@RetentionSE(RUNTIMESE)
@DocumentedSE
@Conditional(org.springframework.boot.autoconfigure.condition.OnBeanCondition.class)
public @interface ConditionalOnBean
指定されたすべての要件を満たす Bean がすでに
BeanFactory
に含まれている場合にのみ一致する @Conditional
。条件が一致するためには、すべての要件が満たされている必要がありますが、同じ Bean で満たされている必要はありません。@Bean
メソッドに配置され、value()
、type()
、name()
、または annotation()
のいずれも指定されていない場合、一致する Bean 型はデフォルトで @Bean
メソッドの戻り値の型になります。
@Configuration public class MyAutoConfiguration { @ConditionalOnBean @Bean public MyService myService() { ... } }
上記のサンプルでは、型 MyService
の Bean がすでに BeanFactory
に含まれている場合、条件は一致します。
この条件は、これまでにアプリケーションコンテキストによって処理された Bean 定義にのみ一致するため、自動構成クラスでのみこの条件を使用することを強くお勧めします。候補 Bean が別の自動構成によって作成される可能性がある場合、この条件を使用するものが実行されることを確認してください。
- 導入:
- 1.0.0
- 作成者:
- Phillip Webb
要素の詳細
value
ClassSE<?>[] valueチェックする Bean のクラス型。指定されたすべてのクラスの Bean がBeanFactory
に含まれている場合に条件が一致します。オートワイヤー候補ではない Bean やデフォルトの候補ではない Bean は無視されます。- 戻り値:
- チェックする Bean のクラス型
- 関連事項:
- デフォルト:
- {}
type
StringSE[] typeチェックする Bean のクラス型名。指定されたすべてのクラスの Bean がBeanFactory
に含まれている場合に条件が一致します。オートワイヤー候補ではない Bean やデフォルトの候補ではない Bean は無視されます。- 戻り値:
- チェックする Bean のクラス型名
- 関連事項:
- デフォルト:
- {}
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
- デフォルト:
- {}