美文网首页
springboot redis fastjson

springboot redis fastjson

作者: alex102400 | 来源:发表于2020-03-03 20:30 被阅读0次

    @Configuration

    public class RedisConfig {

    @Bean

        public RedisTemplateredisTemplate(RedisConnectionFactory factory, RedisSerializer fastJson2JsonRedisSerializer) {

    RedisTemplate redisTemplate =new RedisTemplate<>();

            redisTemplate.setConnectionFactory(factory);

            //key采用String序列化方式;但是如果方法上有Long等非String类型的话,会报类型转换错误;

            StringRedisSerializer stringRedisSerializer =new StringRedisSerializer();

            redisTemplate.setKeySerializer(stringRedisSerializer);

            redisTemplate.setHashKeySerializer(stringRedisSerializer);

            //value采用fast-json序列化方式。

            redisTemplate.setValueSerializer(fastJson2JsonRedisSerializer);

            redisTemplate.setHashValueSerializer(fastJson2JsonRedisSerializer);

            redisTemplate.afterPropertiesSet();

            return redisTemplate;

        }

    @Bean

        public RedisSerializerfastJson2JsonRedisSerializer() {

    return new FastJson2JsonRedisSerializer<>(Object.class);

        }

    public static class FastJson2JsonRedisSerializerimplements RedisSerializer {

    public static final CharsetDEFAULT_CHARSET = StandardCharsets.UTF_8;

            private Classclazz;

            public FastJson2JsonRedisSerializer(Class clazz) {

    super();

                this.clazz = clazz;

            }

    public byte[]serialize(T t)throws SerializationException {

    if (t ==null) {

    return new byte[0];

                }

    return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);

            }

    public T deserialize(byte[] bytes)throws SerializationException {

    if (bytes ==null || bytes.length <=0) {

    return null;

                }

    String str =new String(bytes, DEFAULT_CHARSET);

                return JSON.parseObject(str, clazz, Feature.SupportAutoType);

            }

    }

    }

    相关文章

      网友评论

          本文标题:springboot redis fastjson

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