1. 程式人生 > >序列化之Hessian序列化

序列化之Hessian序列化

java hessian

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

序列化之Hessian序列化