0

我有一个 Web 服务,根据执行的调用,我需要注入不同的 EJB。我可以使用@EJB 注释并指定可以在Web 服务中使用的所有EJB。

例子:

@EJB
private EJBType1 ejb1;
@EJB
private EJBType1 ejb1;

@WebMethod
public String readDataFromType1() {
   ejb1.call1();
}

@WebMethod
public String readDataFromType2() {
   ejb2.call2();
}

我想知道的是什么时候会注入 EJB?仅在使用 EJB 时,还是在执行任何 Web 服务调用时都注入?我担心如果我注入大量 EJB 会对性能产生负面影响。

4

1 回答 1

0

在准备好使用 bean 之前注入 EJB。因此,即使没有调用任何方法,两个 EJBType1 也会被注入。但是有什么理由担心吗?这取决于。

如果 EJBType1 是具有远程接口的 EJB,那么获取对此类 bean 的引用可能代价高昂(特别是如果此 bean 是有状态组件)。

如果 EJBType1 是本地接口 EJB,那么与注入此类 bean 相关的开销并不是特别大,特别是对于可以由应用程序服务器池化的无状态组件。

于 2012-05-07T21:23:23.360 回答