配置Spring Boot经过@ConditionalOnProperty来控制Configuration是否生效spring
一、matchIfMissing属性:从application.properties中读取某个属性值,若是该值为空,默认值为trueapp
@Configuration
@ConditionalOnClass({ Feign.class }) @ConditionalOnProperty(value = "feign.oauth2.enabled", matchIfMissing = true) public class OAuth2FeignAutoConfiguration { @Bean @ConditionalOnBean(OAuth2ClientContext.class) public RequestInterceptor oauth2FeignRequestInterceptor(OAuth2ClientContext oauth2ClientContext) { return new OAuth2FeignRequestInterceptor(oauth2ClientContext); } }
二、havingValue属性:经过其两个属性name以及havingValue来实现的,其中name用来从application.properties中读取某个属性值,若是该值为空,则返回false;若是值不为空,则将该值与havingValue指定的值进行比较,若是同样则返回true;不然返回false。若是返回值为false,则该configuration不生效;为true则生效。ui
@Configuration //若是synchronize在配置文件中而且值为true @ConditionalOnProperty(name = "synchronize", havingValue = "true") public class SecondDatasourceConfig { @Bean(name = "SecondDataSource") @Qualifier("SecondDataSource") @ConfigurationProperties(prefix = "spring.second.datasource") public DataSource jwcDataSource() { return DataSourceBuilder.create().build(); } }