本文介绍bboss序列化cglib代理对象方法。经过cglib代理过的po类对象实例是原来po对象的子类对象,bboss在序列化这种对象时,需要经过特殊处理,否则会出现不可预知的错误,导致序列化失败,典型的例子就是hibernate查询操作返回的po对象就是cglib代理对象。
bboss序列化cglib代理对象方法非常简单,与序列化普通对象的方法一样,使用代码如下:
bboss序列化cglib代理对象方法非常简单,与序列化普通对象的方法一样,使用代码如下:
@Test
public void testCGlibSerial() throws Exception
{
//远程调用
SerialPO po = new SerialPO();
po.setJob("架构工程师");
po.setName("张三");
CGLibProxy proxy = new CGLibProxy(po);
SerialPO po2 = CGLibUtil.getBeanInstance(po.getClass(), po
.getClass(), proxy);
String xml = ObjectSerializable.toXML(po2);
System.out.println(xml);
po = ObjectSerializable.toBean(xml, SerialPO.class);
System.out.println("name:"+po.getName());
System.out.println("job:"+po.getJob());
}
public static class SerialPO
{
private String name;
private String job;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
}