拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Redisson Spring Boot Starter 报 NoClassDefFoundError?从排除传递依赖到接管自动配置的 3 级排障

Redisson Spring Boot Starter 报 NoClassDefFoundError从排除传递依赖到接管自动配置的 3 级排障【免费下载链接】redissonRedisson: Valkey Redis Java Client and Real-Time Data Platform. Sync/Async/RxJava/Reactive API. Over 50 Valkey and Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Spring, Tomcat, Scheduler, JCache API, Hibernate, RPC, local cache..项目地址: https://gitcode.com/GitHub_Trending/re/redissonSpring Boot 集成 Redisson 时NoClassDefFoundError或ClassNotFoundException多由 spring-data 模块与 Spring Boot 版本错位引发。本文按排除传递依赖 → 锁定版本 → 接管自动配置三级递进给出处置手段并附版本矩阵与依赖树核对方法帮助快速定位并防止复发。症状速查10 秒对号入座不同报错指向不同的环节先定位再动手症状根因处置运行时NoClassDefFoundErrorRedisAutoConfiguration、Endpoint等类传递依赖A 引 B、B 又引 CC 被间接拉进来的 spring-data-redis 与项目 Spring Boot 版本错位排除 补正确模块下一节启动即失败日志指向RedissonAutoConfigurationV2/V4自动配置类的ConditionalOnClass条件与类路径不匹配锁版本第 3 节或接管初始化第 4 节依赖树里出现两个 spring-data-redis / 两组 spring-boot-* 版本starter 传递引入的 BOM 与项目自身 BOM 打架在dependencyManagement中显式锁定多米诺骨牌starter 为什么会牵动版本⚠️ 这个坑的关键在 redisson-spring-boot-starter/pom.xmlstarter 会传递引入一个与最新Spring Boot 对应的redisson-spring-data模块当前仓库中为redisson-spring-data-41具体以你使用的发布版本实际依赖为准。它内部依赖的 spring-data-redis 一旦和你的 Spring Boot 版本错位第一张骨牌倒下后面就是连环类加载失败。对照官方文档 docs/integration-with-spring.md 中的版本矩阵选模块redisson-spring-data 模块对应 Spring Bootredisson-spring-data-181.5.xredisson-spring-data-2x20~272.0.x ~ 2.7.xredisson-spring-data-3x30~353.0.x ~ 3.5.xredisson-spring-data-40 / 414.0.x / 4.1.x第一级排除传递依赖换正确模块最小改动止血只动 starter 这一个依赖排除它带的 spring-data 模块再补一个匹配你 Spring Boot 版本的。!-- Maven排除默认模块补上 redisson-spring-data-27示例 -- dependency groupIdorg.redisson/groupId artifactIdredisson-spring-boot-starter/artifactId versionxVERSIONx/version exclusions exclusion groupIdorg.redisson/groupId artifactIdredisson-spring-data-41/artifactId /exclusion /exclusions /dependency dependency groupIdorg.redisson/groupId artifactIdredisson-spring-data-27/artifactId versionxVERSIONx/version /dependency// Gradle同样先排除再补 implementation (org.redisson:redisson-spring-boot-starter:xVERSIONx) { exclude group: org.redisson, module: redisson-spring-data-41 } implementation org.redisson:redisson-spring-data-27:xVERSIONx✅ 改完重启验证。若 Actuator 相关类仍报错说明项目里还残留另一组 spring-boot-* 版本进入下一节。第二级锁定传递依赖版本版本对齐后仍有个别类缺失通常是 starter 传递进来的 Netty 等第三方库与项目其他依赖打架。官方 FAQ见 docs/integration-with-spring.md推荐在properties中锁定properties netty.version4.2.9.Final/netty.version /properties✅ 这是长期维护项目的推荐姿势把 Netty 等高频冲突点写死后续升级 Redisson 时冲突面显著变小别急着全量升级 Spring Boot 去碰运气。第三级接管初始化排除 Redisson 自动配置依赖怎么锁都绕不开时比如多环境、部分环境根本没有 Redis直接把 starter 的自动配置排除掉自己声明RedissonClientBeanSpringBootApplication EnableAutoConfiguration(exclude {RedissonAutoConfigurationV2.class}) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }Configuration public class RedissonConfig { Bean(destroyMethod shutdown) public RedissonClient redisson(Value(classpath:/redisson.yaml) Resource file) throws IOException { return Redisson.create(Config.fromYAML(file.getInputStream())); } }⚠️ 排除的类名随 Spring Boot 版本而变见 RedissonAutoConfigurationV2.javaSpring Boot 2.7~3.5 用RedissonAutoConfigurationV24.0 用RedissonAutoConfigurationV42.6 及以下用RedissonAutoConfiguration。不想起 Bean 的话也可以在application.yaml里写spring.redis.redisson.file: classpath:redisson.yamlSpring Boot 2.x 用spring.redis.*前缀3.x 为spring.data.redis.*。装个探测器依赖树核对防复发改动落地后跑一条命令留档把它当作升级前的探测器mvn dependency:tree -Dincludesorg.springframework.data✅ 确认 classpath 上只剩一个 spring-data-redis、且版本与你补上的redisson-spring-data模块对应冲突即告一段落。自动配置类上的ConditionalOnClass如 RedissonAutoConfigurationV2.java 第 33 行只在类路径齐整时才生效版本对齐后这类报错不会再冒头。【免费下载链接】redissonRedisson: Valkey Redis Java Client and Real-Time Data Platform. Sync/Async/RxJava/Reactive API. Over 50 Valkey and Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Spring, Tomcat, Scheduler, JCache API, Hibernate, RPC, local cache..项目地址: https://gitcode.com/GitHub_Trending/re/redisson创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门