考虑以下两个EJB:
@Stateless
public class MyBean1 {
pulic void method1() {
//method implementation comes here
}
pulic void method2() {
//method implementation comes here
}
}
@Stateless
public class MyBean2 {
@EJB
MyBean1 myBean1;
public void businessMethod() {
myBean1.method1();
myBean1.method2();
}
}
容器是否会保证在MyBean1的相同实例上调用这两个方法(并且在该实例上的两个方法调用之间不会调用其他方法)?
答案 0 :(得分:2)
您无法判断您是否可以访问同一个实例。容器决定了这一点。
即使你"思考"它是同一个实例(例如代码中的一个@EJB MyBean1
),这些调用可能会遇到不同的MyBean
个实例。
可能会在myBean1.method1()
和myBean1.method2()
调用之间调用EJB的其他业务方法。这可能是例如从不同组件调用EJB。