SpringBoot提供了一些条件注解类用于项目的自动配置。
| 条件注解 | 配制生成条件 |
|---|---|
| @ConditionalOnBean | 配置了某个特定的Bean |
| @ConditionalOnMissingBean | 没有配置特定的Bean |
| @ConditionalOnClass | Classpath里有指定的类 |
| @ConditionalOnMissingClass | Classpath里没有指定的类 |
| @ConditionalOnExpression | 给定的Spring Expression Language (SpEL)表达式计算结果为True |
| @ConditionalOnJava | Java的版本匹配特定值或者一个范围值 |
| @ConditionalOnJndi | 参数值给定的JNDI位置必须存在一个,如果没有参数,则要有JNDI InitialContext |
| @ConditionalOnProperty | 制定的配置属性要有一个明确的值 |
| @ConditionalOnResource | Classpath里有指定的资源 |
| @ConditionalOnWebApplication | 这是一个web应用程序 |
| @ConditionalOnNotWebApplication | 这不是一个web应用程序 |