前言
- 在自动配置类中声明Bean的时候,除了在方法上添加@Bean注解,还会加上@Conditionalxxx的注解(该注解都是条件装配的注解)
@Conditional
- 作用:按照一定的条件进行判断,在满足给定条件后才会注册对应的bean对到Spring IOC 容器中去。
- 位置:方法、类
- @Conditional本身是一个父注解,派生出大量的子注解
-
@ConditionalOnBean:当容器中存在指定的Bean时,才会加载被注解的配置类或组件。
-
@ConditionalOnMissingBean:当容器中不存在指定的Bean时(类型或者名称),才会加载被注解的配置类或组件。
-
@Bean @ConditionalOnClass(name="io.jsonwebtoken.Jwts") // 当前环境存在指定类时,才会创建该bean public HeaderParser headerParser(){..}
-
-
@ConditionalOnClass:当类路径下存在指定的类时,才会加载被注解的配置类或组件。
-
@Bean @ConditionalOnMissingBean// 当不存在当前类型的bean时,才声明该bean public HeaderParser headerParser(){..}
-
-
@ConditionalOnMissingClass:当类路径下不存在指定的类时,才会加载被注解的配置类或组件。
-
@ConditionalOnProperty:当指定的配置属性满足条件时(属性名、属性值),才会加载被注解的配置类或组件。
-
@Bean @ConditionalOnProperty(name="name",havingValue="ithema") //配置文件中存在对应的属性和值,才会创建该bean到IOC容器中 public HeaderParser headerParser(){..}
-
-
@ConditionalOnExpression:当指定的SpEL表达式满足条件时,才会加载被注解的配置类或组件。
-