状态会话bean定义如下:何时使用无状态会话Bean来使用有状态会话Bean?
状态会话Bean对象的状态由它的值的实例变量的 的。在有状态会话Bean中,实例 变量表示唯一客户端Bean会话的状态。因为 客户端与其bean交互(“会谈”),这个状态通常被称为会话状态 。
无状态会话bean定义如下:
无状态会话Bean无状态会话Bean不维护与客户端的 会话状态。当客户端调用无状态bean的 方法时,bean的实例变量可能包含特定于该客户端的状态 ,但仅在 调用的持续时间内。该方法完成后,不应保留客户端特定状态 。但是,客户端可能会更改共用无状态bean中的实例变量 的状态,并且此状态将保留为 ,直到下一次调用共用无状态bean。除方法调用期间的 以外,无状态bean的所有实例均为 等效,允许EJB容器将实例分配给任何 客户端。也就是说,无状态会话bean的状态应该适用于所有客户端的 。
它也提到无状态会话bean的优点如下:
因为无状态会话bean可以支持多个客户端,他们可以为需要大量客户端的 应用 提供更好的可扩展性。通常,应用程序需要比有状态会话Bean更少的无状态会话 bean来支持相同数量的 客户端。
所以我想到的问题是什么时候应该使用有状态会话bean?为了我对这个问题的天真理解,我们应该坚持尽可能地使用无状态会话bean。
应该使用有状态会话bean的应用程序是什么?任何好的例子?
相关:http://stackoverflow.com/questions/8887140/jsf-request-scoped-bean-keeps-recreating-new-stateful-session-beans-on-every-req – BalusC