RedisTemplate注入失败典型表现为启动报UnsatisfiedDependencyException或IDE标红但运行“意外”成功,根本原因是泛型擦除导致编译期与运行期类型不一致;必须确保配置类Bean返回类型、字段注入类型及序列化器三者严格匹配,避免使用原始类型或混淆StringRedisTemplate与RedisTemplate。
启动报 UnsatisfiedDependencyException,提示找不到类型为 RedisTemplate 的 Bean;或者 IDE 显示注入变量标红,但运行时又“意外”成功——这往往是因为泛型擦除导致的编译期与运行期不一致。
RedisTemplate 是泛型类,Spring 容器按完整类型(包括泛型参数)匹配 Bean。你写 @Autowired RedisTemplate<string string> redisTemplate;</string>,容器就只找声明为 RedisTemplate<string string></string> 的 Bean,而不是 RedisTemplate<object object></object> 或未指定泛型的原始类型。
RedisTemplate Bean 但没显式指定泛型(比如用了 new RedisTemplate()),它默认是 RedisTemplate<object object></object>
RedisTemplate(无泛型),Java 会视为原始类型,Spring 不将其视为 RedisTemplate<string string></string> 的候选@RequiredArgsConstructor 或构造注入时,字段泛型必须和注入 Bean 的泛型完全一致,否则编译不报错但运行时报 NoUniqueBeanDefinitionException确保配置类中 Bean 的返回类型、注入点的字段类型、以及实际使用的 key/value 类型三者对齐:
@Configurationpublic class RedisConfig { @Bean public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, String> template = new RedisTemplate<>(); template.setConnectionFactory(factory); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new StringRedisSerializer()); template.setHashKeySerializer(new StringRedisSerializer()); template.setHashValueSerializer(new StringRedisSerializer()); return template; }}
@Autowired private RedisTemplate<string string> redisTemplate;</string>
RedisTemplate(无泛型)或 RedisTemplate, ?> 在注入点都不可靠RedisTemplate<string object></string> Bean 并用 @Qualifier 区分,而不是复用同一个 BeanSpring Data Redis 3.x 起,StringRedisTemplate 默认继承自 RedisTemplate<string string></string>,但它是一个独立 Bean,不能替代泛型不匹配的 RedisTemplate 注入。
StringRedisTemplate “差不多能用”,它和 RedisTemplate<string string></string> 是不同类型的 BeanredisTemplate.opsForValue().set("k", "v") 前,确认 setValueSerializer 已设为 StringRedisSerializer,否则可能存入乱码字节tplink路由器默认密码是多少(tplink路由器默认密码详解)
tplink路由器默认密码怎么查看(tplink路由器默认密码查看方法)
tplink无线路由器密码怎么重置(tplink无线路由器密码重置方法)
手机如何设置tplink无线路由器密码和密码共享功能(手机设置tplink无线路由器密码和密码共享功能方法)
tplink无线路由器密码忘记了怎么办(tplink无线路由器密码忘记了解决方案)
tplogin路由器可以无线桥接么(TPLink路由器是否支持无线桥接功能)