序列化之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;
	}

}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章