目录
- 概述
- 扩展
- 类条件
- Bean条件
- 属性条件
- 资源条件
- Web应用程序条件
概述
SpringBoot的最大特点:自动配置
扩展
类条件
- @ConditionalOnClass
- 当Spring加载 的Bean被@ConditionalOnClass注解标记时,类加载器会先找到指定的Class
- 如果没有找到目标Class,那么被ConditionalOnclass注解标记的类不会被Spring执行。
- @ConditionalOnMissingClass
- ConditionalOnMissingClass是指如果没有找到目标Class,那么被 Spring 执行
Bean条件
- @ConditionalOnBean
- 当Spring加载的Bean被@ConditionalOnBean注解标记时
- 会先找到指定的Bean,如果没有找到目标Bean,那被@ConditionalOnBean标记的类不会被 Spring 执行
- @ConditionalOnMissingBean
- 和上述相反,找不到对应的bean则会被Spring执行
属性条件
@ConditionalOnProperty 基于Spring Environment 属性包含的配置
资源条件
@ConditionalOnResource 允许只在出现特定资源时才被Spring执行
@Bean
@ConditionalOnResource(resources="file:/home/user/jdbc.yaml")
public CustomConfig loadConfig(){}
Web应用程序条件
@ConditionalOnWebApplication @ConditionOnNotWebApplication