注入模板时使用@Autowired注入RedisTemplate没有乱码问题,使用@Resource注入RedisTemplate会有乱码问题
@Resource
private RedisTemplate<String, String> redisTemplate;//这样注入中文有乱码
@Autowired
private RedisTemplate<String, String> redisTemplate;//这样注入中文没有乱码
如果一定要使用@Resource注入,需要配置这个RedisTemplate到配置类中
private RedisTemplate redisTemplate;
@Autowired(required = false)
public void setRedisTemplate(RedisTemplate redisTemplate) {
RedisSerializer stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer);
this.redisTemplate = redisTemplate;
}
具体原因不太清楚,应该就是@Autowired与@Resource执行逻辑的区别导致的