快速业务通道

JavaBeans:游离实体 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

JavaBeans:游离实体

时间:2011-07-20

当transaction scope persistence context或extended persistence context结束之后,实体的实例就会不受托管而处于游离状态。游离实体的一个值得注意的特征是,它可以被序列化并通过网络发送给远程客户端。客户端可以修改这些经过序列化的对象实例,并将它们发送回服务器,服务器再将客户端的修改重新合并到数据库中。

这与EJB 2.1的实体模型有很大的不同。在EJB 2.1中,实体是始终受容器管理的,使用entity bean的应用程序总要带一个指向entity bean的代理(译注:proxy,即远程接口或本地接口);而在EJB 3.0中,你是直接与普通Java类的具体实例打交道的。对于EJB 2.1的开发人员而言,上述做法乍一看会觉得有些不适应,因为他们已经习惯了容器来为实体打点一切。不过,一旦你熟悉了新的EJB 3.0实体模型,就会发现,你的应用程序代码将大幅缩减,并且更易于管理。

EJB 2.1的代码中时常使用Value Object模式(也被称为Data Transfer Objects)。该模式的主要思想是:让entity bean暴露一个方法,该方法将bean的全部状态复制到一个对象中,此对象可以被序列化到远程客户端(比如Swing应用程序),以供远程客户端访问。

  // EJB 2.1 entity bean 类    public class CustomerBean implements javax.ejb.EntityBean {      CustomerValueObject getCustomerVO() {      return new CustomerValueObject(getFirstName(), getLastName(),      getStreet(), getCity(), getState, getZip());      }    }

在客户端对entity bean进行远程方法调用需要较大的系统开销。如果客户端必须通过调用getFirstName(),getLastName()等一系列方法才能获得用于显示的客户相关信息,那么性能将变得不堪重负。这便是Value Object模式的由来。而EJB 3.0中,由于持久对象在脱离persistence context之后将自动变成值对象,因此也就没必要再使用该模式了。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号