平台集成了很多应用,例如如下代码: 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、还可使用条件注入语法,根据配置选择创建和注入