美文网首页每天一个 注解
@ConditionalOnMissingBean注解使用

@ConditionalOnMissingBean注解使用

作者: 紫霞等了至尊宝五百年 | 来源:发表于2018-05-14 02:33 被阅读28次

仅当 BeanFactory 中不包含指定的 bean class 和/或 name 时条件匹配

该条件只能匹配到目前为止 application context 已经处理的 bean 定义,因此强烈建议仅在自动配置类上使用此条件。

如果候选 bean 可能由另一个自动配置创建,请确保使用此 condition 的自动配置类在其后运行。

@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Conditional(OnBeanCondition.class)
public @interface ConditionalOnMissingBean {

    /**
     * 需要检查的 bean 的 class 类型。当 ApplicationContext 不包含每一个被指定的 class 时条件匹配。
     */
    Class<?>[] value() default {};

    /**
     * 需要检查的 bean 的 class 类型名称(Java全限定名)。当 ApplicationContext 不包含每一个被指定的 class 时条件匹配。
     */
    String[] type() default {};

    /**
     * 识别匹配 bean 时,可以被忽略的 bean 的 class 类型
     */
    Class<?>[] ignored() default {};

    /**
     * 识别匹配 bean 时,可以被忽略的 bean 的 class 类型名称(Java全限定名)
     */
    String[] ignoredType() default {};

    /**
     * 装饰需要检查的 bean 的注解。当 ApplicationContext 不包含带有这些注解的 bean 时条件匹配。
     */
    Class<? extends Annotation>[] annotation() default {};

    /**
     * 需要检查的 bean 的 name。当 ApplicationContext 不包含任意指定的每一个的 class 时条件匹配。
     */
    String[] name() default {};

    /**
     * 决定是否应考虑 application context 层次(parent contexts)的策略。
     */
    SearchStrategy search() default SearchStrategy.ALL;

}

使用示例如下:

@ConditionalOnMissingBean
@ConditionalOnMissingBean(TransactionManager.class)
@ConditionalOnMissingBean(ignored = {DistributedCommandBus.class})
@ConditionalOnMissingBean({EventStorageEngine.class, EventBus.class, EventStore.class})

相关文章

  • @ConditionalOnMissingBean注解使用

    仅当 BeanFactory 中不包含指定的 bean class 和/或 name 时条件匹配 该条件只能匹配到...

  • SpringBoot

    几个注解 某博客 @ConditionalOnMissingBean 只有特定名称或者类型的Bean(通过@Con...

  • springboot @ConditionalOnMissing

    @ConditionalOnMissingBean与@ConditionalOnBean @Conditional...

  • 条件注解ConditionalXXX

    @ConditionalOnBean 配置了某个特定Bean@ConditionalOnMissingBean 没...

  • 玩转 @ConditionalOnMissingBean

    原文地址:https://alphahinex.github.io/2021/06/27/conditional-...

  • @ConditionalOnMissingBean源码解读

    @ConditionalOnMissingBean源码解读 原文[https://blog.csdn.net/xc...

  • java注解

    内容: 注解的定义 注解的语法 源码级别的注解的使用 运行时注解的使用 编译时注解的使用 Android 预置的注...

  • 【JAVA】注解

    元注解 用来定义、声明注解的注解。 @Inherited注解 使用此注解声明出来的自定义注解,在使用此自定义注解时...

  • Spring讲解(四)

    Spring 中使用注解注入 注解:就是一个类,使用 @ 注解名称。实际开发中:使用注解取代 xml 配置文件。 ...

  • Java注解的使用

    Java注解的使用 参考 廖雪峰java教程 使用注解 什么是注解(Annotation)?注解是放在Java源码...

网友评论

    本文标题:@ConditionalOnMissingBean注解使用

    本文链接:https://www.haomeiwen.com/subject/jtardftx.html