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; } }
时间: 2024-11-24 09:06:40