一次SSM整合redis引发的*

由于项目比较老旧,没法直接引入spring-boot-starter-data-redis
人工去找jar包的对应关系就比较麻烦了

通过搜索得知比较核心的几个jar包有
spring-data-redis //spring 整合redis的核心jar包
jedis //客户端jar包
commons-pool2 //使用redisTemplate要整合的包

我首先是去官网找相关文档,但是由于官网里面没有旧版本的过多描述,只看到与jdk版本相关的信息
一次SSM整合redis引发的*
由于我的项目jdk版本是1.7,spring 版本是4.2,保守一点就没选1.7 选用了 spirng-data-redis1.6.2

然后只能在网上找别人的总结,后来找到了一份redis和jedis版本对应的图
一次SSM整合redis引发的*
我试用了jedis2.8,但还是报错,可能是因为与spring版本不兼容,最终选择了jedis2.7.3

接着就是common-pool2,这个我没找到与redis或者jedis的版本对应关系,只能自己试,后来发现使用common-pool2-2.2时能正常使用,然后才定下了这三个jar包的版本。

最终是
jdk1.7+spring 4.2 + spring-data-redis-1.6.2 + jedis-2.7.3 + common-pool2-2.2

中间还发生了一段小插曲,无论如何整合都是报 NoClassDefFoundError
这明显是jar包冲突或者缺jar包,但我已经再三检查过,jar包都是齐全的,后来就怀疑是jar包冲突。
在idea中观察lib发现jar包并没有问题一次SSM整合redis引发的*
再去检查一下发布路径里的lib文件夹
一次SSM整合redis引发的*
发现lib里面有多个版本的spring-data-redis 、jedis、common-pool2,删掉多余的版本后终于能够正常使用。

结论:
一次SSM整合redis引发的*
idea点击这个减号是不会把你发布路径的那个jar包也删掉,你需要把发布的项目先移除,再重新发布,才可以把正确的jar包发布出去!

最近才开始写blob 可能说的比较啰唆,也有可能有理解不到位的地方,有发现错误的小伙伴请望多多指教!~