ConditionalOnProperty

配置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();
    }
}
相关文章
相关标签/搜索