疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

J2EE技术(五)——EJB


 

 一、EJB基本思想

EJB(Enterprise JavaBean):它提供了一个架构开发和配置到客户端的分布式业务逻辑,可以明显减少开发扩展性高度复杂的企业应用的难度。EJB规范定义了EJB组 件应该如何及何时与它们的容器交互。由EJB容器负责提供普通的服务,例如目录服务、事务管理、安全、资源池和容错。

EJB 结构:

EJB组件要按EJB规范编写,然后部署到应用服务器上。EJB组件运行在EJB容器中。EJB容器是 应用服务器的一部分,该部分软件不单为EJB容器提供运行时环境,更重要的是提供事务、会话管理、持久性、安全等服务。EJB容器通过查看EJB的部署描 述符确定EJB需要哪些服务。客户机要访问EJB,需要通过JNDI和RMI定位EJB的对外接口。如下面图所示:

二、EJB的类型

EJB2.0规范定义了以下三种EJB:

1、           会话Bean(Session Bean)

会话Bean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。在一个基于J2EE规范的电子商务系统中会话Bean可能会充当以下角色:计价器、信用卡验证器、山品搜索引擎。总之,会话Bean代表的是“动作”。

会话Bean分为两类:有状态会话Bean和无状态会话Bean。二者区别在于是否保存客户端的状态信息。

会话Bean通常具有以下属性:

代表单个客户机执行。

可以是事务性的。

可以更新共享数据库中的数据。

生存期相对较短。

其生存期通常就是客户机的生存期。

任何持久性数据都由Bean管理。

可以依容器的判断予以删除。

会在EJB服务器失败时被删除。

2、           实体Bean

实体Bean代表持久保存的数据,典型的是存储在数据库中的数据,因此在服务器崩溃后数据仍然存在。多个客户端可以使用EJB表示同样的数据。例如在一个电子商务系统中,实体Bean可能被用来代表产品、雇员、信用卡、订单等数据对象。

实体Bean通常具有以下属性:

代表数据库中的数据。

是事务性的。

允许多个用户共同访问。

可以长期存在。

持久性数据可以由容器管理。

在EJB服务器失败后能继续生存。

3、           消息驱动Bean

结合了会话Bean和JMS的消息监听器的特性,允许一个业务层组件异步JMS消息。

所有的EJB相同的地方:例如,它们都有一个home接口,用来定义一个客户如何被创建和消除;一个远程接口,定义客户端可以调用哪些Bean上的方法;以及一个实现主商业逻辑的Bean类。

(转载)