这次的优化比较简单,就是新增加了一个序列化方式kryo。参考了博客
基础原理
之前的Jackson序列化因为返回的底层是String类型,所以在反序列化中需要重新对传递的参数类型进行重写,kryo基于字节序列化同时不会出现反序列化过程类型错误,选用。注意目前是仅java应用,不支持跨语言。
知识点
- Lambda表达式
- Kryo序列化
- ThreadLocal:贼全
- ByteArrayInputStream/ByteArrayOutputStream
步骤
-
在Maven工程中的pom.xml导入依赖。
<dependency> <groupId>com.esotericsoftware</groupId> <artifactId>kryo</artifactId> <version>4.0.2</version> </dependency>
记得更新pom.xml后要更新Maven工程
-
先在枚举SerializableCode中增加Kryo序列化方式的编码。
public enum SerializableCode { Kryo_Serializable(0), JSON_Serializable(1); @Getter private final int code; }
-
在CommonSerializer中根据编码返回序列化方式的getByCode方法,增加kryo序列化方法
static CommonSerializer getByCode(int code){