我有一个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会对性能产生负面影响。
答案 0 :(得分:0)
在bean准备好使用之前注入EJB。因此,即使没有调用它们的方法,也会注入EJBType1。但是有任何理由担心吗?这取决于。
如果EJBType1是具有远程接口的EJB,则获取对此类bean的引用可能成本很高(特别是如果此bean是有状态组件)。
如果EJBType1是本地接口EJB,则注入此类bean的开销并不是特别重要,特别是对于无状态组件,可以由应用程序服务器进行池化。