平台集成了很多应用,例如如下代码:
public void put(String key, String value){
if ("Redis".equals(QLMContants.cacheMode)){
redisutils.set(key,value);
}
else if ("Caffeine".equals(QLMContants.cacheMode)){
CaffeineUtils.put(key,value);
}
}
可以根据配置选择使用redis还是内存,但是却增加了包的大小,而且真正要命的问题是,redis是自动链接的,虽然不影响使用,但是启动时报个redis链接不上还是让人不舒服,所以这种情况下需要缩减包或者屏蔽不必要的报错
1、@ComponentScan里通过excludeFilters过滤掉不需要的包:
@ComponentScan(
value={"org.qlm","com.zDHR","com.zFMS"},
excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes =
{HuaweiOBSConfig.class, MinioConfig.class,WeChartPayConfig.class, WeXinPayUtilV3.class,RedisUtils.class})
2、但是上述作法会引起其他异常
@Autowired
private RedisUtils redisUtils;
这种写法就好报错,需修改为
@Autowired(required = false)
private RedisUtils redisUtils;
3、需要进一步屏蔽健康检查
配置文件中加入:
management:
health:
redis:
enabled: false
4、还可使用条件注入语法,根据配置选择创建和注入