2017-07-24 117 views
0

为EJB 3.2第3.4.7.2无状态会话Bean显示出下面的代码来证明平​​等的规范:无状态会话Bean对象标识

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

回答

0

嗯,这不是很明显,我们INFACT谈论成功地代理引用由容器。

但是该示例主要用于与Stateful bean相同的等于指令返回false。在这种情况下容器返回一个新的引用,并且你最终得到两个不同的bean。

UPDATE

呃... ...我犯了一个错误,因为我已阅读cart1.equals(cart2)。在这种情况下,我不得不说,如你所注意的那样,这几乎是显而易见的。

但是,仅仅因为它不是一个简单的参考,你已经获得了new,但它是应用程序服务器为你管理的东西,很高兴知道它为你提供相同的对象标识。这在Stateful的情况下尤其如此。

现在我无法想象Stateless bean与Stateful具有相同的对象标识,但我确信有一些示例。

+0

实际上根据第3.4.7.1节'有状态'会话bean中的规范'语句'cart1.equals(cart1)'必须 - 也 - 返回'true' – ken