Spring boot中有个注解@ConditionalOnProperty,这个注解能够控制某个configuration是否生效。
具体操作是通过其两个属性name以及havingValue来实现的,其中name用来从application.properties中读取某个属性值,如果该值为空,则返回false;
如果值不为空,则将该值与havingValue指定的值进行比较,如果一样则返回true;否则返回false。如果返回值为false,则该configuration不生效;为true则生效
@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(); } }