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的使用需要配置线程池。还需要引用如下的包: