Hessian序列化与Java默认的序列化区别?
1、 Hessian 支持跨语言串行
2、 比java序列化具有更好的性能和易用性
3、 支持的语言比较多
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
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;
}
}
|
本文转自故新51CTO博客,原文链接: http://blog.51cto.com/xingej/1960998,如需转载请自行联系原作者