现总结下结论:
hessian使用自己编写的io,序列化工具进行序列化,在发送数据时,对数据序列化成字节流保存到二进制文件,接收时,反序列化二进制文件成字节流。
相比于 java自己的Serializable 好处有:
1.不需要继承Serializable
2.序列化后的字节流更小
3.序列化会进行加密操作
4.序列化的过程快
相关代码分析后续再贴
继续讲 源码中的 道理:
hessian提供了一系列的序列化工具,通过SerializableFactory,根据不同的class类型,获得不同的序列化实现,大概有Map,String,UnsafeSerizlizaier,Collection,Enum,Throw,Byte等等,基本全覆盖,还有两个hessian自己的。
一般自定义的java对象 是 UnSafeSerializaier,然后会获得对象中的所有字段, 在这个序列化工具初始化函数中会将不同字段对象的序列化的内部类放入filedSerializer[]数组中,然后 for循环,用不同的字段的序列化方式进行序列化。
每个序列化工具内部都有 各自的 内部类:字段类型处理方法。