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,所以构造函数注入失败。
解决方案:
- 构造方法中参数类名改为 RedisTemplate<Object, Object>
2. 使用 @Resource 或 @Autowired + @Qualifier(推荐,最简单)