RedisTemplate中序列化方式GenericJackson2JsonRedisSerializer和Jackson2JsonRedisSerializer的區別
阿新 • • 發佈:2019-01-30
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型別