美文网首页
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