无状态会话Bean对象标识

时间:2017-07-24 12:11:46

标签: ejb-3.1 java-ee-7

EJB 3.2规范第3.4.7.2节“无状态会话Bean”显示以下代码以说明相等性:

@EJB Cart cart1;
@EJB Cart cart2;
...
if (cart1.equals(cart1)) { // this test must return true
...
}

1 个答案:

答案 0 :(得分:0)

嗯,这并不明显,我们实际上是在谈论对容器管理的代理的引用。

然而,该示例主要用于Stateful bean,其中相同的等于指令返回false。在这种情况下,容器返回一个新的引用,最终得到两个不同的bean。

<强>更新

嗯......我犯了一个错误,因为我读过cart1.equals(cart2)。在这种情况下,我不得不说,你注意到它几乎是显而易见的。

但是,仅仅因为它不是您使用new获得的简单引用,而是应用服务器为您管理的内容,最好知道它为您提供相同的对象身份。在Stateful

的情况下,这尤其真实和基本

现在我想不出Stateless bean与Stateful相比具有相同对象标识的任何有用目的,但我确信有一些例子。