我想我在这里有一个基本的理解问题,我希望有人可以向我解释。
假设我们有一个有状态的 EJB_A 和一个有状态的 EJB_B 和一个 sessionscoped ManagedbeanA:
@Stateful
@LocalBean
public class EJB_A {
}
@Stateful
@LocalBean
public class EJB_B {
@EJB
EJB_A ejb;
}
@ManagedBean
@SessionScoped
public class ManagedBeanA {
@EJB
EJB_A ejb;
}
在 ManagedBeanA 中,创建了 EJB_A。现在,当我使用具有 EJB_A 作为属性的 EJB_B 时,将在 EJB_B 中创建 EJB_A 的新实例。它与之前在 ManagedBeanA 中创建的 EJB_A 实例不同。
我不明白这一点,因为我认为有状态 EJB 的全部意义在于,对于每个客户端,只有一个实例由 EJB 容器创建、共享和管理。有人可以向我解释一下吗?还请解释我如何实现一个 EJB 的同一个实例由多个其他 EJB 共享?
谢谢