jetcache 序列化无法识别泛型

xpszyzbs  于 4个月前  发布在  其他
关注(0)|答案(3)|浏览(63)

如图序列化无法识别List中的泛型,只能拿到结果后再次序列化。
有没有更好的方式解决这个问题

wqsoz72f

wqsoz72f1#

方法就是不要用json做序列化

j9per5c4

j9per5c42#

方法就是不要用json做序列化

有具体方案吗?

9avjhtql

9avjhtql3#

方法就是不要用json做序列化

有具体方案吗?

1.使用Jackson2序列化时会记录类型信息, 但是报文会很大.
2. 编程式的方式,你可以手动创建Cache对象,并且自己指定好对应的序列化和反序列化编解码,不使用统一的json序列化,因为无法顾及到所有的情况,应该由编写的人自己来解决

可参考:

QuickConfig systemConfigCacheConfig = QuickConfig
.newBuilder("test", "system:config:")
.expire(Duration.ofSeconds(86410))
.cacheType(CacheType.REMOTE)
// 自己序列化
.valueEncoder(JacksonUtils::objectToByteArray)
// 自己反序列化
.valueDecoder((bytes)-> JacksonUtils.byteArrayToObject(bytes, new TypeReference() {}))
.build();
Cache<String, SystemConfigDTO> cache = cacheManager.getOrCreateCache(systemConfigCacheConfig);

相关问题