无状态会话bean中的实例变量

时间:2011-04-13 01:42:34

标签: session ejb-3.0 javabeans stateless

我已阅读此帖,但它没有回答我的问题。 Stateless session bean with instance variables 我正在阅读JEE5教程,并在此页面上说明 http://download.oracle.com/javaee/5/tutorial/doc/bnbly.html “ 但是,客户端可以更改池化无状态bean中的实例变量的状态,并且此状态将保留到池化无状态bean的下一次调用

我不同意这一点。因为我认为在不同的bean实例的调用中保持'任何'状态是你需要'有状态'的会话bean。

请帮我理解这一点 thx提前 罗宾

1 个答案:

答案 0 :(得分:5)

在EJB中,“有状态”和“无状态”之间的区别是指 会话状态 ,而不仅仅是Java对象状态(即任何实例字段的使用)。

From Wikipedia

  

在有状态会话bean中,实例变量表示唯一客户端bean会话的状态。客户端与bean的交互称为会话状态。

典型的例子是电子商务应用程序的购物车。您使用SFSB来存储“cart”对象,因为它需要在请求之间保持对话状态

On the other hand:

  

无状态会话bean是一个没有关联会话状态但可能具有实例状态的对象。它不允许并发访问bean。实例变量的内容不保证跨方法调用保留。客户端应认为无状态会话bean的所有实例都是相同的。

相关问题