gpt4 book ai didi

jakarta-ee - EJB 请求对自身的引用?

转载 作者:行者123 更新时间:2023-12-04 00:58:09 26 4
gpt4 key购买 nike

如果 EJB 的一个方法对同一个 EJB 进行 JNDI 查找,然后执行其他方法,这是否保证在同一个线程中执行? EJB 对象的实际实例如何?它与调用方法中使用的实例是否相同?

最佳答案

EJB 规范对将 EJB 注入(inject)自身的可能性没有限制(请参阅 EJB 3.1 规范,第 16.5.1.1 章):

The [@EJB] reference may be to a session bean’s business interface or to a session bean’s no-interface view or to the local home interface or remote home interface of a session bean or entity bean.

与每个 EJB 调用一样,它总是在同一个线程中执行;根据不可重入实例规则,它不能是同一个实例(第 4.10.13 章):

[...] Stateful and stateless session beans do not have to be coded as reentrant. One implication of this rule is that an application cannot make loopback calls to a stateless or stateful session bean instance.

这意味着:如果 bean A 调用 bean B 的方法,而 B 调用 A 的任何方法,则容器必须确保 B 调用 A 的另一个实例;事实上,它是同一个线程并不重要,因为可重入性和线程安全是不同的东西。

当 A 通过查找的 JNDI 引用调用自身时,同样的情况也适用,因为容器在运行时参与寻找 A 的空闲实例。相反,如果 A 直接调用其方法之一,则它是一个简单的 Java 方法调用“this”,不涉及容器。

关于jakarta-ee - EJB 请求对自身的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8760037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com