You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.5.4应用JedisClient初始化抛出ClassNotFoundException如何解决

问题根因

报错是由于jedis版本与Spring Boot 2.5.4配套的Spring Data Redis版本不兼容导致:DefaultJedisClientConfig 是jedis 3.2版本之后才新增的类,你当前使用的jedis 3.1.0版本中不存在该类,同时你手动指定的spring-boot-starter-data-redis 2.5.0也和父pom的Spring Boot 2.5.4版本存在微小差异,进一步增加了兼容性风险。

解决方案

直接使用Spring Boot父pom自带的依赖版本管理即可,父pom已经为所有官方starter配套了经过完整兼容性测试的版本,无需手动指定版本号:

1. 修改pom.xml依赖配置

先删除properties节点下的spring-boot-starter-redis.version和redis.version两个自定义属性,再调整Redis相关依赖如下:

<!-- 去掉version属性,直接继承父pom的配套版本 -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <!-- 删除多余的type标签,版本直接继承父pom的3.7.1即可,完全适配Spring Boot 2.5.4 -->
</dependency>

如果一定要手动指定版本保证对齐,可固定为以下经过验证的兼容组合:

  • spring-boot-starter-data-redis:2.5.4(和父pom Spring Boot版本完全一致)
  • jedis:3.7.1(Spring Boot 2.5.4官方适配的jedis版本)

2. 可选配置优化

你现有的RedisConfiguration配置类逻辑本身没有问题,版本修复后可以直接正常运行。如果不需要自定义RedisTemplate的特殊配置,也可以直接删除该配置类,Spring Boot会自动根据你引入的redis.properties配置自动装配JedisConnectionFactory和RedisTemplate,无需手动编写。

如果后续需要解决Redis序列化乱码问题,可以在RedisTemplate的Bean定义中补充序列化配置:

@Bean
public RedisTemplate<String, Object> redisTemplate() {
    RedisTemplate<String, Object> template = new RedisTemplate<>();
    template.setConnectionFactory(jedisConnectionFactory());
    // 使用String序列化器处理key
    template.setKeySerializer(new StringRedisSerializer());
    template.setHashKeySerializer(new StringRedisSerializer());
    // 使用Jackson序列化器处理value
    Jackson2JsonRedisSerializer<Object> jacksonSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
    jacksonSerializer.setObjectMapper(objectMapper);
    template.setValueSerializer(jacksonSerializer);
    template.setHashValueSerializer(jacksonSerializer);
    template.afterPropertiesSet();
    return template;
}

内容的提问来源于stack exchange,提问作者Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:18:01