EJB——会话Bean

来源:互联网 发布:js return void 编辑:程序博客网 时间:2024/05/21 17:57

         会话Bean一般代表着业务流程中象"处理订单"这样的动作。会话Bean基于是否维护过度状态分为有状态或者无状态。

        无状态会话Bean没有中间状态。它们不保持追踪一个方法调用另一个方法传递的信息。因此一个无状态业务方法的每一次调用都独立于它的前一个调用;例如,税费计算或者转移账款。当计算税费额的方法被调用时,税费值被计算并返回给调用的方法,没有必要存储调用者为将来调用备用的内部状态。因为它们不维护状态,所以这些Bean是仅仅由容器管理。当客户端请求一个无状态的Bean实例时,它可以接收来自由容器管理的无状态会话Bean实例集中的一个实例。也因为无状态会话Bean能够被共享,所以容器可以维护更少数量的实例来为大量的客户端服务。简单地象该Bean增加元注释@Stateless来指定一个 Java Bean作为一个无状态会话Bean被部署和管理。

        一个有状态的会话Bean维护一个跨越多个方法调用的会话状态;例如在线购物篮应用。当客户开始在线购物时,客户的详细信息从数据库获得。相同的信息对于当客户从购物篮中增加或者移除商品等等操作时被调用的其他方法也是可访问的。但是因为该状态不是在会话结束,系统崩溃或者网络失败时保留,所以有状态会话Bean是暂时的。当一个客户端请求一个有状态会话Bean实例时,客户端将会得到一个会话实例,该Bean的状态只为给客户端维持。通过向方法增加元注释@Remove来告诉容器当某个方法调用结束一个有状态会话Bean实例应该被移除。

import javax.ejb.Stateless.*;/*** 一个简单无状态会话Bean实现了CalculateEJB接口的incrementValue()方法**/@Stateless(name="CalculateEJB")public class CalculateEJBBeanimplements CalculateEJB{     int value = 0;     public String incrementValue()     {          value++;          return "value incremented by 1";     }}



0 0