美文网首页Spring boot
SpringBoot整合Spring Data Redis和Je

SpringBoot整合Spring Data Redis和Je

作者: 三也视界 | 来源:发表于2021-02-23 10:38 被阅读0次

    报错
    Factory method 'redisConnectionFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: redis/clients/jedis/util/Pool

    已整合jar包和编写配置类后,在测试类中测试报错:java.lang.NoClassDefFoundError: redis/clients/jedis/util/Pool

    一般来说该种错误都是因为缺少相关jar包,或者是相关的class在运行过程中没有被检测到才会弹出

    解决思路

    首先也是先参照别人的代码进行整合测试,所以事先考虑到整合过程中可能会出现版本问题,经过查询后,发现Spring Data RedisJedis之间的确存在版本的对应问题。

    在这里插入图片描述

    然而百度发现一大堆都是复制粘贴 :),然后StackOverflow找到一个相关回答:https://stackoverflow.com/questions/55183019/redis-session-with-java-spring-boot

    在这里插入图片描述

    好了,我现在确定是版本之间的兼容问题了,再观察我模仿的项目pom文件:


    image.png
    image.png

    很明显在spring boot的版本上不一致,再结合StackOverflow上看到的版本对应,则应该存在 spring boot 2.1.x -> jedis 2.9.x 的关系,而且spring boot data的版本是跟随着spring boot更新的,所以版本的冲突问题出现在这里。我自己的spring boot版本是2.2.x,故spring boot data 的版本也是如此,所以我选择导入jedis的最新版本3.2.0,毫无意外成功运行。

    解决方法

    spring-data-redis和jedis之间存在版本对应关系,在spring-data-redis的官方文档中有(然而我没找到),经过查看前人的解决方法和自己的解决方式,得出如下结论:

    spring-data-redis版本 jedis版本
    2.1.x 2.9.x
    2.2.x 3.x

    如果最后还报同样的错误,可以先观察一下自己的版本,选择升高或者降低jedis的版本。

    相关文章

      网友评论

        本文标题:SpringBoot整合Spring Data Redis和Je

        本文链接:https://www.haomeiwen.com/subject/iwlkfltx.html