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

Spring Boot升级到2.5.0后Redis依赖版本冲突启动失败如何解决

问题根因

  • 依赖存在两个核心冲突:
    1. 同时引入了两个版本的Spring Session类库:旧版spring-session 1.3.5.RELEASE和新版spring-session-data-redis 2.5.0,两个Jar包都包含RedisOperationsSessionRepository类,版本不兼容导致构造方法找不到
    2. 旧版Spring Session 1.x 与 Spring Boot 2.5.x内置的Spring Data Redis 2.x版本API不兼容,旧版调用的getConfig方法签名在新版RedisConnection中已经变更

解决方案

按如下规则修改pom.xml依赖:

  1. 完全删除旧版spring-session依赖:Spring Boot 2.x之后Spring Session的Redis支持已经独立为spring-session-data-redis模块,不需要再引入旧的spring-session通用依赖
  2. 不需要手动指定spring-boot-starter-data-redis和spring-session-data-redis的版本号:Spring Boot 2.5.0的父POM已经内置了兼容的版本号,自动匹配不会出现冲突

修改后的最终依赖配置

<!-- Redis Session相关依赖,不需要指定版本号,由Spring Boot父POM统一管理 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

代码适配说明

如果你的代码中还在手动实例化RedisOperationsSessionRepository,需要做对应调整:
Spring Session 2.x中RedisOperationsSessionRepository已经被标记为弃用,替换为RedisIndexedSessionRepository,如果有手动构造Bean的代码,调整为如下写法即可:

@Bean
public RedisIndexedSessionRepository sessionRepository(RedisConnectionFactory redisConnectionFactory) {
    return new RedisIndexedSessionRepository(redisConnectionFactory);
}

验证步骤

修改依赖后执行如下命令清理旧的依赖缓存,再启动项目:

mvn clean install

启动后如果没有类不存在、方法不存在的报错,说明依赖冲突已经解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 07:06:03