2012-05-04 138 views
0

我有根據呼叫執行我需要不同的EJB被注入一個Web服務。 我可以使用@EJB註釋並指定可以在Web服務中使用的所有EJB。當是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,這會對性能產生負面影響。前bean是隨時可以使用

回答

0

EJB注入。因此即使沒有調用任何方法,EJBType1也會被注入。但是有什麼理由擔心嗎?這取決於。

如果EJBType1是與當時遠程接口獲取參考這樣的豆可能是昂貴的(特別是如果此豆是有狀態的部件)一個EJB。

如果EJBType1是本地接口EJB然後用這種豆的注入連接的開銷沒有特別顯著,特別是對於一個無狀態組件,其可以由應用程序服務器被彙集。

+0

的EJB是所有地方。如果不使用它,只是覺得浪費資源。我想創建一個EJB,它是所有應用程序的入口點。該界面執行基本的審計跟蹤記錄和系統認證。如果成功,它將調用相關的EJB。這意味着我將不得不注入很多EJB,而每個請求通常只使用一個。但是,感謝您確認EJB即使未被使用也被注入。 – likenoother