springboot中使用redis,key序列化问题解决方案
2018-04-02 17:43
1211 查看
因为boot默认的key序列化方案是JdkSerializationRedisSerializer——使用Java自带的序列化机制将对象序列化为一个字符串,
你会发现是一串难懂的字符,不利于维护和修改,所有有必要改变默认的序列化方式,下面是我的代码,有效。
在启动类中写入:
@Bean
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 使用Jackson2JsonRedisSerialize 替换默认序列化
@SuppressWarnings("rawtypes")
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
// 设置value的序列化规则和 key的序列化规则
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
你会发现是一串难懂的字符,不利于维护和修改,所有有必要改变默认的序列化方式,下面是我的代码,有效。
在启动类中写入:
@Bean
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 使用Jackson2JsonRedisSerialize 替换默认序列化
@SuppressWarnings("rawtypes")
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
// 设置value的序列化规则和 key的序列化规则
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
相关文章推荐
- redis 在spring boot工程中的应用(三) 问题发现与解决 :反序列化 报错
- 【springBoot】springBoot集成redis的key,value序列化的相关问题
- 【springBoot】springBoot集成redis的key,value序列化的相关问题
- 【springBoot】springBoot集成redis的key,value序列化的相关问题
- 解决spring boot redis序列化key-value乱码\xac\xed\x00\x05t\x00
- spring boot中关于redis 保存数据的序列化(数据库中的乱码问题)
- Swagger使用及Springfox+SpringBoot解决404问题
- 解决Spring boot中使用Gson,Swagger2 api-docs无法正常显示json问题
- Spring-boot通过redisTemplate使用redis(无须手动序列化)
- SpringBoot(六):SpringBoot使用CROS解决跨域问题
- Maven使用package打包Spring Boot时出现:Unable to find a single main class from the following candidates的问题解决
- 关于spring boot无法自动注入bean问题解决方案
- Spring boot 关于在Maven下的pom.xml添加对redis的支持报错解决问题
- 解决使用Spring Boot、Multipartfile上传文件路径错误问题
- 在Spring Boot中使用Spring Session解决分布式会话共享问题
- spring boot新手教程之使用FastJson解析JSON数据以及解决返回中文乱码问题
- SpringBoot项目使用视图解析器解决Circular view path 问题
- jedis,spring-redis-data 整合使用,版本问题异常以及解决。
- 解决Intellij IDEA 使用Spring-boot-devTools无效的问题
- SpringBoot使用可能遇到的问题及解决方法