`
sakakokiya
  • 浏览: 520839 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

介绍一下EJB的分类及其各自的功能及应用?

阅读更多
在EJB2.0中定义了三种不同类别的EJB:Session Bean(会话Bean)、Entity Bean(实体Bean)和Message-Driven Bean(消息驱动Bean)[2]。
1 会话Bean
会话Bean是商务过程对象,执行商务逻辑、规则和工作流程。会话Bean之所以被称为会话Bean,是因为它代表的是一个动作、是一个过程,它的生存期就是调用它的客户端与它进行会话的过程。
会话Bean根据其是否保存客户的状态,又分为状态会话Bean和无状态会话Bean。状态会话Bean是一种保持会话状态的服务,每个实例都与特定的客户机相关联,在与客户机的方法调用之间维持对话状态。与之相反,无状态会话Bean不保存与特定客户的对话状态。因此状态会话Bean比无状态会话Bean具有更多的功能,而无状态会话Bean实例可以通过 EJB容器自由地在客户机之间交换,从而少量的会话Bean就可以服务于大量的客户机。
2 实体Bean
实体Bean代表商务上的实体,比如商务数据,应该包含与数据相关的逻辑。实体Bean是对应到数据库中的一个视图,一个实体Bean实例和底层数据库完全是一回事[2]。因此,一个简单的实体bean实例代表一个特殊的记录。更复杂的实体bean可以代表数据库表间关联视图[3]。
实体Bean有两种操作类型:BMP(Bean管理持久性)和CMP(容器管理持久性)。BMP是指由Bean自己来实现实体Bean的持久性,即在Bean中实现数据库操作。而CMP则是由容器实现Bean的持久性,使我们不需要在Bean内再编写数据库操作的代码。
3 消息驱动Bean
消息驱动Bean是EJB2.0新引入的一种Bean类型。它的主要目的是,通过允许容器去聚合并且管理消息驱动Bean实例,以此来提供传入JMS消息的并发处理[4]。
4 会话Bean与实体Bean的区别和联系
会话Bean执行应用逻辑,它们隐含地使用实体Bean作为它们操作的数据。在EJB分布式对象体系结构中,会话Bean被用做代表实际商务过程的高层接口来屏蔽底层实体Bean子系统。实体Bean是实际恒定商务实体的模型,因此它通常比会话Bean具有更高层次的重复使用。
5 EJB的应用
接下来,通过分析电子购物环节的业务逻辑层的对象模型来说明各种EJB在业务逻辑层中的不同应用。
业务逻辑层包含了一系列EJB组件。首先我们将其抽象成若干个对象模型,如图所示:
图:对象模型图
本图首先反映了电子商务中各EJB组件之间的静态关系。
由多个购物篮条目(Cart Line Item)组成的一个购物篮(Cart)为一个顾客 (Customer)存储产品的临时选择;由多个订单条目(Order line Item)组成的一个订单(Order)为一个顾客存储产品的永久选择。购物篮能将自身转换为订单。
一个购物篮条目代表一个产品(Product)的临时选择,一个订单条目代表一个产品的永久选择。
估价器(Pricer)在顾客查看购物篮时计算购物篮的价格,并且在顾客最终生成订单时计算订单的价格。
订单处理器(Order Processor)为订单验证信用卡,发送E-mail确认,并标识为永久。
同时从本图中也可以了解一个电子购物的过程:首先,在购物时顾客把自己感兴趣的产品放入购物篮中,同时由估价器对购物篮进行及时估价。然后,顾客在确认购买后,购物篮能自动生成订单。再由估价器计算出订单的价格。接着,由订单处理器验证顾客信用卡的合法性,在交易完成后为顾客发送E-mail确认交易成功,并将本交易标识为永久。
顾客、订单、产品、订单条目这几个对象是永久性、持续性对象,例如,顾客信息、产品信息都需要存入数据库,并且在适当的时候从数据库中读取。所以,这几项都需要用实体Bean来实现。
购物篮和购物篮条目只在顾客购物的过程中起作用,所以不是永久性的,而且每一个购物篮都对应于一个特定的顾客,对应于若干条特定的购物车条目,因此购物篮和购物篮条目用状态会话Bean来充当最合适不过。
估价器的作用是计算出购物篮和订单的价格,它并没有和特定的顾客绑定,可以作用于任意的购物篮,而且也不是永久对象,因此估价器可以用一个无状态会话Bean来充当。
订单处理器是一个特殊的对象,它通过顾客所要求的不同的付款方式产生不同的订单,也就是说,它是由不同的付款方式来驱动的。所以在这里用消息驱动Bean是最恰当的。
通过上面的分析,我们清楚的了解到不同类型的EJB在实际应用中如何发挥自己的作用。
分享到:
评论

相关推荐

    spring与ejb的区别

    ### Spring与EJB3.0的关键区别及其优劣分析 #### 一、Spring框架概述 **1.1 引言** Spring作为一个广受欢迎的开源框架,最初被设计用于减轻企业级应用开发中的复杂性问题。它的一个显著特点在于模块化的分层架构...

    EJB3.0实例教程

    - 介绍了EJB3中的EntityManager接口及其主要功能。 - 包括执行CRUD操作、查询实体数据等方法。 - **关系/对象映射**: - 详细解释了如何使用EJB3进行复杂的关系映射。 - 包括一对多、多对一、一对一、多对多等...

    ejb2.rar_bmp ejb2_ejb2_ejb2 cmp b

    综上所述,ejb2.rar_bmp ejb2_ejb2_ejb2 cmp b 文件压缩包提供了一个实际的EJB 2.1 CMP和BMP登录示例,这对于理解这两种持久化策略及其在实际项目中的应用非常有价值。通过研究这个实例,开发者可以深入学习EJB 2.1...

    基于Struts1.2和EJB3.0整合的一个小项目

    在Java Web开发领域,Struts1.2和EJB3.0是两个重要的技术框架,它们各自扮演着不同的角色,共同构建了一个功能强大的应用程序。Struts1.2是MVC(Model-View-Controller)设计模式的实现,主要用于处理用户界面和业务...

    Struts2+Spring+EJB框架整合实例

    Struts2、Spring和EJB(Struts2+Spring+EJB,简称SSE)是Java企业级开发中常用的三大框架,它们各自承担着不同的职责,共同构建了一个强大的应用架构。Struts2作为MVC(Model-View-Controller)框架,负责处理用户...

    ejb3中文教程ejb3中文教程

    介绍Jboss AS的目录结构及其各部分功能,帮助开发者理解如何组织和部署应用程序。 **2.2 JBOSS中的部署** 涵盖EJB模块、WAR文件、EAR文件等不同类型的部署单元如何在Jboss AS中部署。 **2.3 如何进行EJB打包** ...

    EJB3与Struts与Spring整合开发(SSE)

    EJB3、Struts和Spring是Java企业级开发中的三个重要框架,它们分别在不同的层次上解决了应用程序的设计和管理问题。EJB3是Java企业版(Java EE)的一部分,提供了面向服务的组件模型,用于构建可扩展且可靠的分布式...

    POJO Application Frameworks_ Spring Vs. EJB 3

    文章旨在深入探讨这两种框架在企业级Java应用程序开发中的应用,以及它们各自的优势与不足。 标签:“spring” 标签明确指向Spring框架,这表明文章将侧重于Spring框架的特性、功能以及它在企业软件开发中的角色。...

    seam jsf ejb 资源相关连部分

    通过以上介绍,我们可以看出JSF是一种非常强大且灵活的Web应用框架,它与Seam和EJB结合使用时,可以构建出功能完备、易于维护的企业级应用。尽管存在一些缺点,但随着技术的发展,这些问题也在逐步得到解决。

    J2EE指南.doc

    - **分布式多层应用程序**:介绍了分布式多层应用程序的基本概念,这类应用程序通常包括客户端、中间层和后端数据库等多个层次,每一层都有其特定的功能。客户端负责与用户的交互;中间层处理业务逻辑,协调各层之间...

    用Struts建立MVC应用的介绍

    在Web应用开发领域,**Model1**和**Model2**是两种基于JSP技术的开发模型,它们各自代表了不同的架构思想。 - **Model1**:这是一种以JSP为中心的开发模型,JSP页面集成了业务逻辑、服务端处理过程以及HTML展示,...

    JBoss Application Server4.2 Clustering_Guide

    本章节简要介绍了JBoss Application Server集群的概念,强调了集群在提高应用服务可用性及扩展性方面的重要性。 **1.2 集群定义** 对集群的基本定义进行了阐述,包括集群节点如何协同工作以提供高可用性和负载均衡...

    轻量级J2EE企业级应用实战

    本文将详细介绍轻量级J2EE企业级应用实战的知识点,重点内容围绕JavaEE基础开发知识、三大框架Struts2.2、Spring3.0、Hibernate3.6的使用方法,以及如何将这些技术整合应用于实际项目中。 首先,我们需要了解JavaEE...

    tomcat、weblogic、jboss的区别,容器的作用

    - WebLogic是由Oracle提供的全功能Java EE应用服务器,支持完整的Java EE规范,包括ejb、JMS、JTA等高级服务。 - WebLogic以其强大的集群、负载均衡、安全管理以及事务处理能力著称,适合大型企业级应用。 - 部署...

    县级电网调度自动化系统的应用和发展.docx

    每一代的进步都有其各自的目标,但每前进一步都与计算机及其操作系统的升级有着紧密联系。 2. 系统应用 县级电网调度自动化系统是一个技术不断发展、功能不断扩充的系统,在发展中总会碰到新的问题,现行的一些...

    j2ee学习笔记

    接下来,熟悉EJB概念和使用方式,了解不同类型的EJB及其在实际项目中的应用场景。同时,学习Oracle数据库的基础知识,包括SQL查询和JDBC操作。最后,通过实践项目来巩固理论知识,例如搭建一个简单的J2EE应用,包括...

    J2EE核心技术

    下面将详细讨论J2EE中的13种核心技术及其应用场景。 1. **JDBC (Java Database Connectivity)**:JDBC是Java中用来访问数据库的标准接口,它允许Java应用程序与各种类型的数据库进行交互,提供了平台无关性的数据...

    J2EE和.NET 应用程序服务器与Web服务基准比较

    ### J2EE与.NET 应用程序服务器及Web服务基准比较 #### Middleware公司研究概览 Middleware公司发布的《J2EE和.NET应用程序服务器与Web服务基准比较》报告深入探讨了两个主要的企业级软件开发平台之间的差异及其...

Global site tag (gtag.js) - Google Analytics