SpringBoot系列之@Conditional注解用法简介

@Conditional表示仅当所有指定条件都匹配时,组件才有资格注册 。
该@Conditional注释可以在以下任一方式使用:

  • 作为任何@Bean方法的方法级注释
  • 作为任何类的直接或间接注释的类型级别注释 @Component,包括@Configuration类
  • 作为元注释,目的是组成自定义构造型注释

作用:总而言之,只有@Conditional指定的条件成立,才给容器添加组件

@Conditional派生注解:@Conditional派生了很多注解,下面给个表格列举一下派生注解的用法

@Conditional派生注解作用(都是判断是否符合指定的条件)
@ConditionalOnJava系统的java版本是否符合要求
@ConditionalOnBean有指定的Bean类
@ConditionalOnMissingBean没有指定的bean类
@ConditionalOnExpression符合指定的SpEL表达式
@ConditionalOnClass有指定的类
@ConditionalOnMissingClass没有指定的类
@ConditionalOnSingleCandidate容器只有一个指定的bean,或者这个bean是首选bean
@ConditionalOnProperty指定的property属性有指定的值
@ConditionalOnResource路径下存在指定的资源
@ConditionalOnWebApplication系统环境是web环境
@ConditionalOnNotWebApplication系统环境不是web环境
@ConditionalOnjndiJNDI存在指定的项
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Spring Boot 中,@Conditional 和 @AutoConfigureAfter 是两个常用的注解,它们分别用于控制 Bean 的加载条件和 Bean 的加载顺序。下面分别对它们进行解析。 ## @Conditional @Conditional 注解用于控制 Bean 的加载条件,即只有满足指定的条件时,才会加载该 Bean。它的作用类似于 Spring Framework 中的 @Profile 注解,但更为灵活。 @Conditional 注解可以标注在配置类上或者 Bean 定义方法上,用于控制配置类或者 Bean 的加载条件。它的参数是一个实现了 Condition 接口的类,该类需要实现 matches 方法,用于指定 Bean 加载的条件。 下面是一个使用 @Conditional 注解的例子: ```java @Configuration @Conditional(MyCondition.class) public class MyConfig { @Bean public MyBean myBean() { return new MyBean(); } } ``` 这里,@Conditional(MyCondition.class) 指定了加载 MyConfig 配置类的条件,它的条件由 MyCondition 类中的 matches 方法指定。 ## @AutoConfigureAfter @AutoConfigureAfter 注解用于控制 Bean 的加载顺序,即指定在哪些 Bean 加载之后,才会加载当前 Bean。它的作用类似于 Spring Framework 中的 @DependsOn 注解,但更为灵活。 @AutoConfigureAfter 注解可以标注在配置类上或者 Bean 定义方法上,用于指定 Bean 加载的顺序。它的参数是一个字符串数组,指定了当前 Bean 依赖的其他 Bean 名称。 下面是一个使用 @AutoConfigureAfter 注解的例子: ```java @Configuration @AutoConfigureAfter({MyConfig1.class, MyConfig2.class}) public class MyConfig3 { @Bean public MyBean3 myBean3() { return new MyBean3(); } } ``` 这里,@AutoConfigureAfter({MyConfig1.class, MyConfig2.class}) 指定了在 MyConfig1 和 MyConfig2 配置类加载之后,才会加载 MyConfig3 配置类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值