You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Spring Boot与Redis整合报错:依赖版本是否存在兼容性问题?

Spring Boot 与 Redis 整合的版本兼容性问题解答

嗨,这个问题的核心绝对是版本兼容性不匹配——你选用的Spring Boot 1.5.10.RELEASE和Spring Data Redis 2.0.4.RELEASE根本不在同一个兼容轨道上,这也是你创建Redis Bean时报错的根源。

为什么会不兼容?

Spring Boot的spring-boot-starter-parent是个「版本管理器」,它会统一管控所有Spring生态组件的版本,避免出现依赖冲突:

  • Spring Boot 1.5.x系列(比如你用的1.5.10)对应的是Spring Data Ingalls分支,匹配的Spring Data Redis版本应该是1.13.x.RELEASE
  • 而Spring Data Redis 2.0.4属于Spring Data Kay分支,这个分支是专门为Spring Boot 2.0.x系列设计的,和Spring Boot 1.x依赖的核心框架(比如Spring Framework 4.3 vs 5.x)完全不兼容,强行组合必然会出现类找不到、方法签名不匹配等问题。

解决办法

你有两种可行的方案:

方案1:降级Spring Data Redis到匹配版本

不需要改动Spring Boot主版本,直接把Spring Data Redis的版本换成和Spring Boot 1.5.10对应的1.13.10.RELEASE即可:

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.13.10.RELEASE</version>
</dependency>

方案2:升级Spring Boot到2.0.x系列

如果想用上Spring Data Redis 2.0.x的新特性,可以把Spring Boot的parent版本升级到2.0.4.RELEASE(和Spring Data Redis 2.0.4版本完全匹配),这样整个生态的依赖都会自动对齐:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
</parent>

小提醒:升级Spring Boot主版本可能需要调整部分代码(比如Spring MVC的API变化、配置文件格式调整等),记得做好测试哦。

额外小贴士

你遇到的Redis Bean创建报错(比如ClassNotFoundExceptionNoSuchMethodError)基本都是版本不兼容导致的。修改版本后,建议清理本地Maven仓库的缓存,重新构建项目,确保所有依赖都正确下载并生效。

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

火山引擎 最新活动