Error creating bean with name ‘redisTemplate’ defined in class path resource [xx/RedisConfig.class]

1.问题描述

在项目中使用redis,报错如下:
在这里插入图片描述

2.问题分析

从报错Factory method ‘redisConnectionFactory’ threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool2/impl/GenericObjectPoolConfig得到重点信息。NoClassDefFoundError:编译时JVM加载不到类或者找不到类导致的。
导致NoClassDefFoundError的原因:
1)一种情况就是因为静态变量加载不到原因
2)工程里没有将jar添加到classpath,maven项目的,需要根据项目情况排查

3.问题处理

项目中引用的spring-boot-starter-data-redis包,而spring-boot-starter-data-redis 默认是采用 lettuce作为redis的客户端, 而lettuce 底层又采用 netty实现 , lettuce 是一个可伸缩的线程安全的 Redis 客户端,支持同步、异步和响应式模式。多个线程可以共享一个连接实例,而不必担心多线程并发问题,lettuce的使用需要配置线程池。还需要引用如下的包:
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐