【现状及起因】
1:在2019-07-23号jackson-databind报高危漏洞,低于2.9.9.1的版本存在问题,需要升级到2.9.9.1及以上版本;然后问题就接踵而至......其中最大的问题就是SpringBoot升级版本的问题了
【定位分析】
1:SpringBoot的spring-boot-starter-web中有间接引用jackson-databind,需要升级

项目一中的SpringBoot为1.5.17,排除引用后,重新引用jackson-databind后,项目启动报错,无法找到类。
项目二中的SpringBoot为2.0.5,排除引用后,重新引用jackson-databind后,项目启动运行正常。
项目一、二对比发现,Jackson-databind新版本与SpringBoot1.5.17版本不兼容,计划升级SpringBoot版本
2:将SpringBoot版本由1.5.17升级到2.0.5,升级后redis的pom配置异常,SpringBoot1.x为spring-boot-starter-redis,而Springboot2.x为 spring-boot-starter-data-redis,并且需要添加commons-pool2包实现线程池。

pom配置完成后,因为是在类中手动配置的redis信息,所以RedisConfig.java需要修改缓存配置
2.1: 启动后报错如下:

本文讲述了在升级SpringBoot从1.5.17到2.0.5过程中遇到的Jackson-databind兼容性问题、Redis配置变化及超时异常,以及解决方案。升级后,发现Jackson-databind新版本与1.5.17不兼容,需要进一步升级SpringBoot。此外,Redis的依赖从spring-boot-starter-redis变为spring-boot-starter-data-redis,并引入了commons-pool2。在解决RedisCommandTimeoutException时,发现系统环境和驱动选择(lettuce vs jedis)的影响。最终通过调整配置和引入正确版本的jedis解决了问题。
最低0.47元/天 解锁文章
557

被折叠的 条评论
为什么被折叠?



