具有更多注入 EJB 实例的无状态 EJB

2024-04-28

我知道无状态 EJB 存储在池中并根据需要进行实例化,我的问题是,当存在更多 EJB 依赖项时会发生什么,例如如下所示:

@Remote
@Stateless
public class Master_EJB{
     @EJB
     private EJB_A ejb_A;

     @EJB
     private EJB_B ejb_B;
}

EJB_A 和 EJB_B 也是无状态 EJB。

在最坏的情况下,如果同时有两个请求,服务器将从池中检索两个 Master_EJB 实例(或者根据需要创建)。

但是,如果这两个调用中,一个仅需要 EJB_A,另一个仅需要 EJB_B,则需要多少个实例:4 个(2 Master_EJB + 1 EJB_A + 1 EJB_B)或 6 个(2 Master_EJB + 2 EJB_A + 2 EJB_B)?


EJB_A和EJB_B是无状态的还是有状态的?

如果是无状态的,答案取决于使用的容器/池类型和最近的情况(请求数量、服务器负载等)。 如果有状态和容器将实例化 2 个 Master_EJB 实例,则将实例化两个 EJB_A 实例,并且还将实例化两个 EJB_B 实例。

请记住容器may创建两个 Master_EJB 实例 - 这又取决于容器本身和当前情况(容器也可能决定仅使用一个 Master_EJB 实例来处理请求)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有更多注入 EJB 实例的无状态 EJB 的相关文章

随机推荐