EJB 学习笔记之 -会话Bean

企业Bean是实现EJB技术的J2EE组件。企业Bean在EJB容器中运行 。

何时需要使用企业Bean

如果你的应用程序符合以下的任一条件,你就应该考虑使用企业Bean: 

·你的应用程序需要不断的升级。为了适应不断增长的用户,你可能需要将你的应用程序组件分布在多台不同的机器上运行。虽然并不仅仅是企业Bean可以在不同的机器上运行,但企业Bean的运行位置对于客户端始终是透明的。

·需要用事务机制来保证数据完整性。企业Bean支持事务机制以提供对共享资源并发访问的管理。

·应用程序需要支持众多不同类型的客户端。只需要极少的几行代码,远程客户端就可以很容易的访问到企业Bean。这些客户都可以很“瘦”并且在理论上可以是任意数量不同类型的客户端。

企业Bean的分类

会话Bean

会话Bean表现连接到J2EE服务器的一个单独的客户端。客户端通过调用会话Bean的方法来访问部署在服务器上的应用程序。会话Bean完成客户端的请求,从而对客户端隐藏了服务器内复杂商务逻辑的执行过程。

正如会话Bean的名称所表示的,它代表一次会话。单独的会话Bean对象是不可以共享的,它只能有一个客户端访问,同样一次会话也只能有一个用户。和一次会话一样,会话Bean对象不是持久性对象。

何时需要会话Bean

通常,在出现以下几种情况时你需要用会话Bean:

.在任何给定时间,只有一个客户端访问这个Bean的实例。

. Bean的状态并不需要持久保存,只在一个时间段(可能是几小时)内保持。

在以下情况下,建议采用有状态会话Bean:

. Bean需要描述一个于特定客户端的会话状态

. Bean需要在客户端的多个方法调用之间保存调用信息

. Bean作为应用程序的其他组件和客户端的中介者,呈现一个简单化的视图给客户端

.在调用接口里,Bean管理很多企业Bean的工作流(如18章的AccountControllerEJB的会话Bean例子)。

如果你的应用符合以下特性,为了得到更高的性能你应该选择无状态会话Bean:

.Bean的状态不包含客户端相关的数据

.在一个单一方法调用中,Bean已经可以为客户端完成所需要的工作。例如你可以用无状态会话Bean发一封邮件确认网络订单。

.Bean需要从数据库获取一些客户端经常访问的只读数据。你可以用这样的Bean来访问数据表中代表这个月已经卖出的产品的行。

有状态会话Bean

一个对象的状态由它的成员变量(数据成员)的状态决定。有状态会话Bean的成员变量描述一个唯一的客户端-会话Bean的关联状态。因为客户端要与对应的会话Bean进行对话,所以这种状态通常被叫做会话状态。

会话状态在整个会话期间被保留。如果客户端运行结束或者删除对应的会话Bean,这个会话就结束同时状态被清除。这种状态的短暂性并不是问题,相反,如果客户端和会话Bean的对话结束就不必要在保留会话的状态了。

无状态会话Bean

无状态会话Bean并不为客户端保留会话状态。在客户端掉用无状态会话Bean的方法时,对应会话Bean的数据成员会描述这个调用状态,但仅仅只在该方法调用期间保持这个状态。当方法调用结束,状态就被清除。除了在方法调用期间,所有同一个无状态会话Bean实例是等价的,可以被容器分配给任一客户端。

因为无状态会话Bean可以同时支持多个客户端,所以能更好的支持应用程序的可数的大量客户端。很明显,对支持相同数量的客户端的应用程序,需要的无状态会话Bean会比有状态会话Bean要少。

有时,EJB容器会在没有请求的时候把有状态会话Bean保存在内存(二级存储器Second Storage)中。不管什么时候,没有请求时无状态会话Bean都不会被保存中。所以,无状态会话Bean会比有状态会话Bean有更高的性能

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值