fix: 解决强制依赖redis错误 by huayanYu · Pull Request #2015 · binarywang/WxJava
如果不使用Redis,如只使用redisson作为storage,则会在打包后报错。
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool2/impl/GenericObjectPoolConfig
最小化示例项目 https://github.com/huayanYu/wxjava-mini-demo mvn test 即可复现。
分析原因: 不太确定,没仔细研究spring源码,大概是因为配置类里会用到JedisPool,所以会去查找相关类。
放到内部类通过静态方法调用则不会。
另外的解决办法
我的多数据源单独配了一个独立Configuration先通过判断所有能加入的,放到一个池子里。 然后再要使用的地方注入这个池子,去这个池子里取。 不过本项目要改造,工作量有些大。 也不一定是最合适的方案。 可以参考讨论。
https://github.com/baomidou/dynamic-datasource-spring-boot-starter/blob/master/src/main/java/com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceCreatorAutoConfiguration.java