快速业务通道

EJB3.0的三大类型详解 - 编程入门网

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

EJB3.0的三大类型详解

时间:2011-04-30

无论你创建bean会话是为了执行特定任务,还是把表映射到实体bean以更新数据,都可以使用普通的Java对象和接口来完成这些工作,并且可以通过在业务方法中使用注释,把方法提供给客户端。

Enterprise JavaBean (EJB) 是可重用的、可移植的 J2EE 组件。EJB 由封装业务逻辑的方法组成。譬如说,EJB 可能有这样的业务逻辑:包含了更新数据库中客户数据的方法。众多远程和本地客户端可以调用该方法。另外,EJB 在容器里面运行,这样开发人员只要关注bean里面的业务逻辑,不必担心复杂、容易出错的问题,譬如事务支持、安全性和远程对象访问等。EJB 作为普通Java对象(POJO)的形式来开发,开发人员可以使用元数据注释(metadata annotations)来指定容器如何管理这些bean。

EJB 包括三种主要类型:会话 bean、实体 bean和消息驱动的bean。会话bean执行独立的、解除耦合的任务,譬如检查客户的信用记录。实体bean是一个复杂的业务实体,它代表数据库中存在的业务对象。消息驱动的bean用于接收异步JMS 消息。下面,让我们进一步研究EJB 3.0规范中的这些类型。

一、会话bean

会话bean通常代表业务流程里面的操作,譬如“处理订单”。可根据对话状态的保持性,即有状态和无状态对会话bean进行分类。

无状态的会话 bean没有内部状态。它们不跟踪记录从一个方法调用传递到另一个方法调用的信息。因此,每次调用无状态的业务方法都独立于前一次调用,譬如计算税款或者运费。用某个应税值调用计算税款的方法时,对税款值进行计算并返回给调用方法,而不必保存调用者的内部状态供以后调用。因为这些bean并不保持状态,所以容器对它们进行管理就很简单。客户端请求无状态的bean实例时,可以从容器保持的无状态的会话bean 实例池当中接收一个实例。另外,因为无状态的会话 bean可以共享,所以容器可保持数量较少的实例为许多客户端提供服务。想指定Java Bean作为无状态的会话bean加以部署及管理,只需要为该bean添加注释@Stateless。

有状态的会话 bean在方法调用时可保持对话状态,譬如客户的网上购物车。客户开始网上购物时,可以从数据库中检索客户的详细信息。客户往购物车里面添加商品或者从里面删除商品、下订单等时调用的其他方法也可以使用这些详细信息。不过,有状态的会话bean是暂时性的,因为出现会话终止、系统崩溃或者网络故障后,状态不复存在。客户端请求有状态的会话bean实例时,就为该客户端分配一个有状态的实例,并为该客户端保持该组件的状态。要指定容器在某个方法完成后删除有状态的会话bean实例,只要为该方法添加注释@Remove。

会话 bean示例如下:

import javax.ejb.Stateless.*;    /*A simple stateless session bean implementing    the incrementValue() method of the * CalculateEJB interface.*/    @Stateless(name="CalculateEJB")    public class CalculateEJBBean    implements CalculateEJB    {    int value = 0;    public String incrementValue()    {    value++;    return "value incremented by 1";    }    }

EJB3.0的三大类型详解(2)

时间:2011-04-30

二、实体bean

实体bean是管理持久性数据的一个对象,有可能使用几个相关的Java对象,并可以通过主键实现惟一性。通过添加@Entity注释,可以把某类指定为实体bean。实体bean代表数据库中的持久性数据,如客户表中的一行或者员工表中的一条员工记录。实体bean还可以在多个客户端之间共享。譬如说,某个员工实体bean可以由多个客户端用于计算某员工的年薪或者更新员工地址。实体bean对象的特定字段可以成为持久

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号