Springboot整合redis(Redisson、Jedis等)缓存项目启动故障,注解 缓存失效解决方案

在Springboot项目中,启动时遇到错误:由于存在多个CachingConfigurer实现导致故障。解决方法是选择一种策略:要么只实现一次CachingConfigurer接口,要么完全不实现。在Springboot2.x中,默认使用Lettuce。当手动添加Redisson并同时使用@EnableCaching时,会引发异常。通过实现代理接口方法并使用@Cacheable注解,可以确保缓存失效时直接执行方法体,这种方式保持缓存有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Springboot整合redis(Redisson、Jedis等)缓存项目启动故障,注解 缓存失效解决方案

启动故障ERROR

implementations of CachingConfigurer were found when only 1 was expected. Refactor the configuration such that CachingConfigurer is implemented only once or not at all.

public class RedissionConfig extends CachingConfigurerSupport {

springboot2.x默认使用lettuce
如:主动向容器添加Redisson时优先使用用户创建,
若用户放入容器的客户端实现CachingConfigurer接口,
与此同时配置类加上@EnableCaching,则为接口创建代理对象时出现多个实现类而抛出异常。

解决办法:二选一
亲测:实现接口方法使用@Cacheable等注解,缓存失效直接执行方法体。@EnableCaching方式能够正确执行

JedisConfig extends CachingConfigurerSupport

此时非容器中RedisConnectionFactory 的客户端实现CachingConfigurer接口,不会影响项目正常运行,缓存有效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值