RedisTemplate 不能注入问题

Consider defining a bean of type ‘org.springframework.data.redis.core.RedisTemplate’ in your configuration.

spring boot 3.5 , spring.data.redis 配置文件已配置, 相关starter 依赖也存在。 但使用@RequiredArgsConstructor 注入 RedisTemplate<String, Object> 时报错。

原因:

类型不匹配详解

plain

复制

自动配置的 Bean: RedisTemplate<Object, Object>
你的构造参数:   RedisTemplate<String, Object>

Spring 的泛型在注入时是参与类型匹配的!

Spring 的 GenericTypeAwareAutowireCandidateResolver 会检查泛型参数,Object != String,所以构造函数注入失败。

解决方案:

  1. 构造方法中参数类名改为 RedisTemplate<Object, Object>

2. 使用 @Resource 或 @Autowired + @Qualifier(推荐,最简单)