Hessian序列化与Java默认的序列化区别?
1、 Hessian 支持跨语言串行
2、 比java序列化具有更好的性能和易用性
3、 支持的语言比较多
package com.xingej.ser.impl;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import com.caucho.hessian.io.HessianInput;
import com.caucho.hessian.io.HessianOutput;
import com.xingej.ser.ISerializer;
public class HessianSerializer implements ISerializer {
@Override
public <T> byte[] serialize(T obj) {
// 1、创建字节输出流
ByteArrayOutputStream bos = new ByteArrayOutputStream();
// 2、对字节数组流进行再次封装
HessianOutput hessianOutput = new HessianOutput(bos);
try {
// 注意,obj 必须实现Serializable接口
hessianOutput.writeObject(obj);
} catch (IOException e) {
e.printStackTrace();
}
return bos.toByteArray();
}
@SuppressWarnings("unchecked")
@Override
public <T> T deserialize(byte[] data, Class<T> clazz) {
// 1、将字节数组转换成字节输入流
ByteArrayInputStream bis = new ByteArrayInputStream(data);
HessianInput hessianInput = new HessianInput(bis);
Object object = null;
try {
object = hessianInput.readObject();
} catch (IOException e) {
e.printStackTrace();
}
return (T) object;
}
}本文出自 “XEJ分布式工作室” 博客,请务必保留此出处http://xingej.blog.51cto.com/7912529/1960998
原文:http://xingej.blog.51cto.com/7912529/1960998