https://jverson.com/spring-boot-demo/
SpringBoot产生于Spring4.
Spring4中增加了@Condition annotation,使用该Annotation之后,在做依赖注入的时候,会检测是否满足某个条件来决定是否注入某个类。
@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication(不是web应用)
@ConditionalOnProperty 配置文件属性是否为true
@Conditional是Spring4新提供的注解。@Conditional根据满足某个特定的条件创建一个特定的Bean。
@Conditional 可以标注在类和方法上
一个方法只能注入一个bean实例,所以@Conditional标注在方法上只能控制一个bean实例是否注入。
一个类中可以注入很多实例,@Conditional标注在类上就决定了一批bean是否注入。
参考资料
https://www.cnblogs.com/doit8791/p/8792978.html
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-condition-annotations
https://github.com/jiwenxing/spring-boot-demo/wiki/Spring-Conditional-Annotation
网友评论