spring的@ConditionalOnBean注解

本文解释了SpringBoot中的@ConditionalOnBean注解如何确保只有当特定类型的bean存在时,自动配置才会生效。它强调了条件检查仅针对已处理的bean定义,并建议在自动配置类中正确使用,以避免依赖冲突。
摘要由CSDN通过智能技术生成

https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/condition/ConditionalOnBean.html

  • org.springframework.boot.autoconfigure.condition.ConditionalOnBean:只有当满足所有声明的要求的bean已经包含在BeanFactory中的时候,@Conditional才匹配。条件要想匹配上,所有的要求必须被满足,但不必须是被一个bean满足。
  • 当注解一个@Bean方法的时候,bean类默认是工厂方法返回的类型。
    例如:
 @Configuration
 public class MyAutoConfiguration {

     @ConditionalOnBean
     @Bean
     public MyService myService() {
         ...
     }

 }

在上面的例子中,只有当一个类型为MyService的bean已经包含在BeanFactory的时候,条件才满足。

  • 条件只能匹配目前为止已经被应用上下文处理的bean定义。正因为此,强烈建议只将这个注解用在自动配置类上。如果一个候选bean可以被其它的自动配置创建,那么要确保使用这个条件的bean在后面运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值