springboot 中 @ConditionalOnExpression注解 在特定情况下使用相关配置或者实例化bean

springboot 中 @ConditionalOnExpression注解 在特定情况下使用相关配置或者实例化bean

五月 30, 2018

在开发中会遇到一些需求:在配置文件中设置一个enable,当这个配置为true的时候,才进行相关的配置类的初始化。

示例:

需要实例化的bean,请不要加@Component注解

1
2
3
4
5
6
7
8
9
10
public class TestBean {
public TestBean(){
}
public doSomeThing(){
}
}

配置类:

1
2
3
4
5
6
7
8
@Configuration
@ConditionalOnExpression("${test.enabled:true}")
public class TestConfiguration {
@Bean
public TestBean testBean() {
return new TestBean();
}
}

配置文件:

1
test.enabled: true

这个bean只有在test.enabled: true的时候才会进行初始化。