我想我在这里有一个基本的理解问题,我希望有人可以向我解释.
假设我们有一个有状态的EJB_A和一个有状态的EJB_B和一个有会话的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;
}
Run Code Online (Sandbox Code Playgroud)
在ManagedBeanA中,创建了EJB_A.现在,当我使用EJB_B(EJB_A作为属性)时,EJB_B中会创建一个新的EJB_A实例.它与之前在ManagedBeanA中创建的EJB_A的实例不同.
我不明白,因为我认为有状态EJB的重点是,每个客户端只有一个实例由EJB-Container创建和共享和管理.有人可以向我解释一下吗?还请解释我如何实现EJB的同一个实例由多个其他EJB共享?
谢谢