アノテーションインターフェース ConditionalOnClass
@TargetSE({TYPESE,METHODSE})
@RetentionSE(RUNTIMESE)
@DocumentedSE
@Conditional(org.springframework.boot.autoconfigure.condition.OnClassCondition.class)
public @interface ConditionalOnClass
指定されたクラスがクラスパス上にある場合にのみ一致する
@Conditional。Class value は、クラスがロードされる前に ASM を使用してアノテーションメタデータが解析されるため、@Configuration クラスで安全に指定できます。クラス参照を使用できない場合は、name String 属性を使用できます。
注意 : @Bean メソッドで @ConditionalOnClass を使用する場合は、特に注意が必要です。通常、戻り値の型が条件のターゲットになります。メソッドの条件が適用される前に、JVM はクラスをロードし、クラスが存在しない場合に失敗するメソッド参照を処理する可能性があります。このシナリオを処理するには、個別の @Configuration クラスを使用して状態を分離する必要があります。例:
@AutoConfiguration
public class MyAutoConfiguration {
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(SomeService.class)
public static class SomeServiceConfiguration {
@Bean
@ConditionalOnMissingBean
public SomeService someService() {
return new SomeService();
}
}
}- 導入:
- 1.0.0
- 作成者:
- Phillip Webb
オプション要素の概要
オプション要素
要素の詳細
value
name