redisConfig常见配置与错误解决方案

常见错误

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to

解决方案
@Component
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 3600)
public class RedisConfig {

    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate template = new RedisTemplate();
        template.setConnectionFactory(redisConnectionFactory);
        template.setKeySerializer(new StringRedisSerializer());
        //json序列化方式
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper objectMapper1 = new ObjectMapper();
        objectMapper1.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
        //解决Redis value的序列化方式 datatime时间格式的解决
        SimpleModule simpleModule1 = new SimpleModule();
        simpleModule1.addSerializer(DateTime.class, new JodaDateTimeJsonSerializer());
        simpleModule1.addDeserializer(DateTime.class, new JodaDateTimeJsonDeserializer());
        objectMapper1.registerModule(simpleModule1);


        jackson2JsonRedisSerializer.setObjectMapper(objectMapper1);
       
        template.setValueSerializer(jackson2JsonRedisSerializer);
    //解决方法 设置好默认的序列化方式就可以在接受json数据时自动解析json 
        template.setDefaultSerializer(jackson2JsonRedisSerializer);
        return template;
    }
}


版权声明:本文为qq1246827263_com原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。