@ConditionalOnProperty作用
时间: 2023-12-08 08:39:31 浏览: 87
自定义@Configuration配置类启用开关.zip
@ConditionalOnProperty注解是Spring Boot的条件注解,它可以根据配置文件中的属性来控制某个配置类是否生效,或者控制某个Bean是否被创建。当配置文件中的属性值与注解中指定的值相同时,@ConditionalOnProperty注解所标注的类或方法才会被执行。这个注解可以用于控制Bean的创建,也可以用于控制配置类的创建。需要注意的是,@ConditionalOnProperty注解只代表符合条件就执行注入,不代表它有@Configuration注解的作用,所以想控制一个配置类是就需要有@ConditionalOnProperty和@Configuration注解。
下面是一个使用@ConditionalOnProperty注解的例子,当配置文件中的属性spring.profiles.active的值为dev时,才会创建名为devDataSource的Bean:
```java
@Configuration
public class DataSourceConfig {
@Bean(name = "devDataSource")
@ConditionalOnProperty(prefix = "spring.profiles", name = "active", havingValue = "dev")
public DataSource devDataSource() {
// 创建dev环境下的DataSource
}
@Bean(name = "prodDataSource")
@ConditionalOnProperty(prefix = "spring.profiles", name = "active", havingValue = "prod")
public DataSource prodDataSource() {
// 创建prod环境下的DataSource
}
}
```
阅读全文