alibaba / jetcache

JetCache is a Java cache framework.
Apache License 2.0
5.09k stars 1.05k forks source link

序列化无法识别泛型 #848

Open mzy2023 opened 9 months ago

mzy2023 commented 9 months ago

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

areyouok commented 9 months ago

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

mzy2023 commented 9 months ago

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

有具体方案吗?

dantefung commented 7 months ago

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

有具体方案吗?

1.使用Jackson2序列化时会记录类型信息, 但是报文会很大.

  1. 编程式的方式,你可以手动创建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<CacheValueHolder>() {})) .build(); Cache<String, SystemConfigDTO> cache = cacheManager.getOrCreateCache(systemConfigCacheConfig);