断点

每天进步一点点!
posts - 174, comments - 56, trackbacks - 0, articles - 21

EJB3.0 基础

Posted on 2010-01-13 22:36 断点 阅读(246) 评论(0)  编辑  收藏 所属分类: EJB3.0

EJB(Enterprise JavaBeans)在JavaEE体系中,通常用来完成商务逻辑层的功能,EJB是一种组件结构。EJB组件要按照EJB规范编写,然后部署到应用服务器上,具体讲是运行在J2EE应用服务器的EJB容器中,该部分软件不单为EJB提供运行时的环境,更重要的是提供事务、会话管理、持久性、安全等服务。EJB容器通过查看EJB描述符(配置文件)确定EJB需要那些服务。客户机要访问EJB组件需要通过JNDI和RMI定位EJB的对外接口。

采用EJB开发基于MVC(包含显示层、控制层和业务层)结构的应用,那么EJB就是用于开发应用的业务层。

开发EJB遵循如下步骤进行:
1.开发构成EJB组件的Java源文件,比如:组件接口、Home接口、企业Bean类、所需的辅助类等。
2.手工完成部署描述符,或者借助与IDE。
3.编译步骤1开发的java源文件.
4.借助于JDK自带的jar使用工具,来创建含有部署描述符和.class文件的EJB-jar文件。
5.通过具体EJb容器提供的部署建议,来完成Ejb-jar文件的部署。
6.配置EJB服务器,使得Ejb-jar含有的Ejb组件能够正常运作。
7.启动EJB服务器。此时,开发者可以验证EJB组件是否部署成功,并运行。
    
EJB3.0规范定义了如下3种EJB组件类型:
1、会话Bean(SessionBean):无状态会话Bean(Stateless SessionBean)、有状态会话Bean(Stateful SessionBean)。
会话Bean通常有以下属性:
(1)代表单个客户机执行。
(2)可以是事务的。
(3)可以更新共享数据库中的数据。
(4)生存期相对较短。
(5)其生存期通常就是客户机的生存期。
(6)任何持久性数据都有Bean管理。
(7)可以依容器的判断予以删除。
(8)会在EJB服务器失败时被删除。
      EJB容器管理无状态会话Bean的生存周期,其方式是通过创建足够多数量的此种Bean适应客户机工作负荷,并在不需要它们的时候将其删除或者将闲置的Bean写到磁盘上。
      如果会话Bean在方法调用之前需要保留状态信息,则必须使用有状态的会话Bean(Stateful SessionBean)。
     会话Bean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。
     总之,会话Bean代表一种操作:它检索或者存储数据以满足用户的请求。

2、实体Bean(EntityBean),通常有以下属性:
(1)代表数据库的数据。
(2)是事务性的。
(3)允许多个用户共同访问。
(4)可以长期存在。
(5)持久性数据可以由容器管理。
(6)在EJB服务器失败后能继续生存。
      实体Bean被用来代表应用数据库中用到的数据。例如在一个电子商务系统中,实体Bean可以被用来代表产品、雇员、信用卡、订单数据等数据对象。
      持久性是实体Bean的一个基本属性。EJB规范允许两种形式的实体持久性:Bean管理的持久性(BMP)和容器管理的持久性(CMP)。
      实体Bean支持多个用户并发的访问数据。EJB规范说明,维护数据的完整性是容器的责任。容器完成这个任务通常的做法是,锁定数据库中的数据,并使访问串行化,或者通过创建多个实体Bean的实例,并允许在基础数据存储中使用并发控制,来管理访问。
     总之,实体Bean代表一种数据集:可以访问这些数据集以满足用户的请求。

3、消息驱动bean(Message DrivenBean)
     消息驱动Bean要与JMS结合使用,以提供消息驱动的异步处理功能。例如电子商务系统的交易确认就可以用消息驱动Bean来实现。
     消息驱动Bean作为JMS队列和主题的监听器部署,当有JMS消息到达,系统就会调用消息驱动Bean去完成业务逻辑方法。
     总之,客户机不能直接调用消息驱动Bean,客户通过发送JMS消息调用消息驱动Bean。


posted @ 2009-03-13 15:11 断点 阅读(122) | 评论 (0)

只有注册用户登录后才能发表评论。


网站导航: