SpringBoot中的条件注解有哪些?有什么作用?
1、常用条件注解
SpringBoot常用条件注解 | 作用范围 |
---|---|
@Conditional | 用来标识一个SpringBean或者Configuration配置文件 当满足指定的条件才开启配置 |
@ConditionalOnBean | 当容器中有指定的Bean才开启配置 |
@ConditionalOnMissingBean | 与ConditionalOnBean注解相反,当容器中没有指定Bean才开启配置 |
@ConditionalOnClass | 当容器中有指定的Class才开启配置 |
@ConditionalOnMissingClass | 当容器中没有指定的Class才开启配置 |
@ConditionalOnWebApplication | 当前项目是WEB项目才开启配置 |
@ConditionalOnNotWebApplication | 当前项目不是WEB项目才开启配置 |
@ConditionalOnProperty | 当指定属性有指定的值时才开启配置 |
@ConditionalOnExpression | 当SpEL表达式为true时才开启配置 |
@ConditionalOnJava | 当运行的java JVM在指定的版本范围时才开启配置 |
@ConditionalOnResource | 当类路径下有指定的资源才开启配置 |
@ConditionalOnJndl | 当指定的JNDL存在时才开启配置 |
@ConditionalOnCloudPlatform | 当指定的云平台激活时才开启配置 |
@ConditionalOnSingleCandidateq | 当指定的class 在容器中只有一个Bean 或者同时有多个但为首选时才开启配置 |
修饰在自动配置类上:作用是判断自动配置类是否生效
温馨提示:@Conditional不是springboot提供的注解,是spring提供的,所以Springboot上面的接口都是基于Spring的@Conditional接口扩展的。