美文网首页
redis序列号报错org.springframework.da

redis序列号报错org.springframework.da

作者: 无尘粉笔 | 来源:发表于2020-09-05 20:22 被阅读0次

今天发现使用redis序列化查询数据报错,于是debug调一下源码,我们可以看到这个redisTemplate的key的序列化和value的序列化类。

lALPGpb_8DLFM73NAmvNAng_632_619.png lALPGpNycY35SfTNAkrNAjA_560_586.png

所以通过redisConfig可以对redisTemplate的序列化方法进行修改。

/**
*redis相关配置
*/
@Configuration
//开启注解缓存
@EnableCaching
publicclassRedisConfig{

/**
*redis序列化配置
*@paramconnectionFactoryjedis连接工厂
*@return
*/
@Bean
publicRedisTemplateredisTemplate(JedisConnectionFactoryconnectionFactory){
RedisTemplateredisTemplate=newRedisTemplate();
redisTemplate.setConnectionFactory(connectionFactory);
//使用Jackson2JsonRedisSerialize替换默认序列化
Jackson2JsonRedisSerializerjackson2JsonRedisSerializer=newJackson2JsonRedisSerializer(Object.class);
ObjectMapperobjectMapper=newObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL,JsonAutoDetect.Visibility.ANY);
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
//设置value的序列化规则和key的序列化规则
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.setKeySerializer(newStringRedisSerializer());
redisTemplate.setHashKeySerializer(redisTemplate.getKeySerializer());
redisTemplate.afterPropertiesSet();
returnredisTemplate;
}
}

相关文章

网友评论

      本文标题:redis序列号报错org.springframework.da

      本文链接:https://www.haomeiwen.com/subject/shffektx.html