脚本宝典收集整理的这篇文章主要介绍了SpringBoot - 条件注解,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@ConditionalOnBean对应的Condition处理类是OnBeanCondition。如果Spring容器里面存在指定的Bean则生效。
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Conditional(OnBeanCondition.class)
public @interface ConditionalOnBean {
/**
* 需要作为条件的类的Class对象数组
*/
Class<?>[] value() default {};
/**
* 需要作为条件的类的Name, Class.getName()
*/
String[] type() default {};
/**
* (用于指定注解修饰的Bean)条件所需的注解类
*/
Class<? extends Annotation>[] annotation() default {};
/**
* Spring容器中Bean的名字
*/
String[] name() default {};
/**
* 搜索容器层级,当前容器,父容器
*/
SearchStrategy search() default SearchStrategy.ALL;
/**
* 可能在其泛型参数中包含指定Bean类型的其他类
*/
Class<?>[] parameterizedContainer() default {};
}
@ConditionalOnMissingBean对应的Condition实现类是OnBeanCondition。如果Spring容器里面不存在指定的Bean则生效。
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Conditional(OnBeanCondition.class)
public @interface ConditionalOnMissingBean {
/**
* 需要作为条件的类的Class对象数组
*/
Class<?>[] value() default {};
/**
* 需要作为条件的类的Name, Class.getName()
*/
String[] type() default {};
/**
* 匹配Bean的时候需要忽视的Class对象数组,一般是父类
* @ConditionalOnMissingBean(value = JdbcFactory.class, ignored = MySqlDefaultFactory.class)
*/
Class<?>[] ignored() default {};
/**
* 匹配Bean的时候需要忽视的类的Name, Class.getName()
*/
String[] ignoredType() default {};
/**
* (用于指定注解修饰的Bean)条件所需的注解类
*/
Class<? extends Annotation>[] annotation() default {};
/**
* Spring容器中Bean的名字
*/
String[] name() default {};
/**
* 搜索容器层级,当前容器,父容器
*/
SearchStrategy search() default SearchStrategy.ALL;
/**
* 可能在其泛型参数中包含指定Bean类型的其他类
*/
Class<?>[] parameterizedContainer() default {};
}
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Conditional(OnBeanCondition.class)
public @interface ConditionalOnSingleCandidate {
/**
* 需要作为条件的类的Class对象
*/
Class<?> value() default Object.class;
/**
* 需要作为条件的类的Name, Class.getName()
*/
String type() default "";
/**
* 搜索容器层级,当前容器,父容器
*/
SearchStrategy search() default SearchStrategy.ALL;
}
@ConditionalOnClass对应的Condition处理类是OnClassCondition。如果当前类路径下面有指定的类的时候则生效。
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Conditional(OnClassCondition.class)
public @interface ConditionalOnClass {
/**
* 需要作为条件的类的Class对象数组
*/
Class<?>[] value() default {};
/**
* 需要作为条件的类的Name, Class.getName()
*/
String[] name() default {};
}
@ConditionalOnMissingClass对应的Condition处理类是OnClassCondition。如果当前类路径下面没有指定的类的时候则生效。
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Conditional(OnClassCondition.class)
public @interface ConditionalOnMissingClass {
/**
* 需要作为条件的类的Name, Class.getName()
*/
String[] value() default {};
}
参考链接
以上是脚本宝典为你收集整理的SpringBoot - 条件注解全部内容,希望文章能够帮你解决SpringBoot - 条件注解所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。