RedisTemplate中序列化方式GenericJackson2JsonRedisSerializer和Jackson2JsonRedisSerializer的区别

Jackson2JsonRedisSerializer和GenericJackson2JsonRedisSerializer都是序列化为json格式。

不同:

  如果存储的类型为List等带有泛型的对象,反序列化的时候 Jackson2JsonRedisSerializer序列化方式会报错,而GenericJackson2JsonRedisSerializer序列化方式是成功的,

原因:

   Jackson2JsonRedisSerializer序列化方式数据:

[
    {
        "userId": null,
        "userName": "你好",
        "password": "22222222222",
        "phone": null
    }
]

   GenericJackson2JsonRedisSerializer序列化方式数据:

[
    "java.util.ArrayList",
    [
        {
            "@class": "com.winterchen.model.User",
            "userId": null,
            "userName": "你好",
            "password": "22222222222",
            "phone": null
        }
    ]
]

当反序列化的时候 Jackson2JsonRedisSerializer方式的list中放的是LinkedHashMap,而我们是强转为User类型的所以报错

GenericJackson2JsonRedisSerializer方式中有@class字段保存有类型的包路径,可以顺利的转换为我们需要的User类型

猜你喜欢

转载自blog.csdn.net/after_you/article/details/81086904