另一种实现
时间: 2024-02-26 22:59:15 浏览: 27
另一种实现方式是使用Spring Boot的@ConditionalOnProperty和@ConditionalOnBean注解来实现条件注册bean。这两个注解都是Spring Boot提供的,只需要在配置类中使用即可。
```java
@Configuration
public class MyConfig {
@Bean
@ConditionalOnProperty(name = "my.feature.enabled", havingValue = "true")
public MyBean myBean() {
return new MyBean();
}
@Bean
@ConditionalOnBean(MyBean.class)
public MyService myService(MyBean myBean) {
return new MyService(myBean);
}
}
```
这个配置类中定义了两个bean:MyBean和MyService。使用@ConditionalOnProperty注解标注的myBean方法只有在配置文件中设置了my.feature.enabled=true时才会注册到Spring容器中。使用@ConditionalOnBean注解标注的myService方法只有在容器中存在MyBean bean时才会注册到Spring容器中。
使用Spring Boot的@ConditionalOnProperty和@ConditionalOnBean注解可以非常方便的实现条件注册bean,同时也可以结合其他条件注解,如@ConditionalOnClass、@ConditionalOnMissingBean等等,实现更加复杂的条件判断。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)