JavaBeans 组件模型与EJB 组件模型的比较

      范中定义了事件监听事件引发和JavaBeans 属性等特征EJB 也定义了一个Java 组件模型但是EJB 组件模型和JavaBeans 组件模型是不同的两个模型首先这两个模型的侧重点不同JavaBeans 组件模型的重点在于允许开发者在Java 集成开发环境中可视化地操纵JavaBeans 组件把若干个JavaBeans 组件拼装成为一个完整的Java 应用程序JavaBeans规范详细地解释了组件间事件监听者的注册注销事件的引发事件的传递事件的过滤识别和属性使用JavaBeans 的定制和持久化的应用编程接口等诸多内容EJB 组件模型的侧重点则在于定义了一个可以便携地部署Java 组件的服务框架模型因此其中并没提及事件的传递和处理因为EJB 组件通常不发送事件和监听事件的发生同样也没有提及
属性的定制EJB 对象的属性定制并不是在开发时进行而是在EJB 组件运行时刻(实际上在部署组件时通过一个部署描述符(Deployment Descriptor)来定制的定制的EJB 对象的属性一般是生命周期持久性事务属性和安全特性等属性不要试图寻找JavaBeans 和EJB 组件模型之间的相似性它们都是Java 组件模型规范但是前者说明了在集成开发环境中应用程序如何组装比较高效的问题而后者则侧重于部署EJB 组件的服务平台的细节不要错误地认为JavaBeans 组件是用于客户端程序的开发(实际上JavaBeans 可以用于客户端程序的开发例如Java Applet 小程序中可以使用JavaBeans 不过这不是JavaBeans 组件的主要用途) JavaBeans 组件主要用于服务端程序的开发(如本书第一章所述) 同样EJB 组件也是用于服务器端的程序开发JavaBeans 可作为进行非图形化的服务器端的Java 应用开发的组件使用区别是当你使用JavaBeans 创建服务器端应用程序时你还得设计整个的服务框架使用EJB 组件那么服务框架是现成的由EJB 平台自动支持的你只需要使用EJB 的API 即可对于复杂的服务器端应用程序显然使用EJB 比使用JavaBeans 更简单
会话EJB 和实体EJB
EJB 技术规范规定有两种类型的EJB 对象它们分别是Session EJB(会话EJB)和EntityEJB(实体EJB)Session EJB(会话EJB)是短暂存在的对象它同样运行在服务器端并执行一些应用逻辑处理它的实例对象由客户端应用程序建立并仅能够被该应用程序所使用其保存的数据需要开发者编写程序来管理我们通常使用Session EJB 来完成数据库访问或数据计算等工作Session EJB 支持事务属性但是当系统因为某种特殊的不可预见的原因崩溃或者关闭后Session EJB 的状态数据不会再被系统恢复Session EJB 的这种特性十分类似于Page Scope 类型的JavaBean 组件对象Entity EJB(实体EJB)是持久运行的EJB 对象由某个客户端应用程序创建但是可以被其他对象或者其他的应用程序调用与Session EJB 不同Entity EJB 必须在建立时制定一个唯一的标识并提供相应的机制允许客户应用程序根据Entity EJB 标识来定位EntityEJB 的实例对象多个用户可以并发访问Entity EJB 事务之间的协调工作由EJB Container或者EJB 类自身来完成读者应当注意Session EJB 只能够被创建它的应用程序所调用所以不存在事务协调的问题Entity EJB 支持事务处理当系统停机时也可以恢复停机以前的状态包括EJB 对象所数据在内EJB 规范中定义了两种处理Entity EJB 的持久性模型即Beans Managed Peresistent(Bean 自管理模式亦即BMP 模式)及Container ManagedPeresistent(容器管理模式亦即CMP 模式) BMP 模式是由EJB 对象自己来管理持久性它需要EJB 开发者来编写数据库或应用程序的处理逻辑并加入到EJB 对象类(EJBObjectClass)的ejbCreate() ejbRemove() ejbFind() ejbLoad()和ejbStore()等方法中CMP 模式是将EJB 持久性管理交给EJB Container 来完成开发者一般要在EJB 对象的DeploymentDescriptor 中的Container Managed 字段属性中指定EJB 实例对象的持久性作用域当使用CMP 模式时不需要用户知道Entity EJB 所存储的数据源也不需要用户参与复杂烦琐
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值