分享
 
 
 

EJB的分类及其各自的功能及应用

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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在实际应用中如何发挥自己的作用。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有