springboot根据yml配置文件选择性加载bean

时间:2021-11-04 10:03:28
1 @Slf4j
2 @Aspect
3 @Component
4 @ConditionalOnProperty(value = "localCache.apiCache", havingValue = "true")
5 public class ApiLocalCacheHandler {
6     //这个bean要做的事情
7 }    

yml文件部分配置如下:

# 本地缓存的基础配置
localCache:
  apiCache: true #是否开启接口级本地缓存

apiCache设置为true的时候才会加载切面ApiLocalCacheHandler,以上yml文件未配置的情况下就不再加载这个切面

还可以通过@Value("${localCache.apiCache}")获取配置信息,但是在配置缺失的情况下启动就会报错,不推荐采用这种方式读取配置文件,而采用如下方式会更好

1 @Data
2 @Configuration
3 @ConfigurationProperties(prefix = "localCache")
4 public class LocalCacheConfig {
5    //这里是读取你的配置
6    private Boolean apiCache;
7 }