2011-12-23 59 views
0

我正在構建一個用EJB 3處理數據的小框架。
我有從數據源中抽象出來的實體訪問對象層。現在我需要某種工廠,它會給我正確的bean來查詢實體。EJB3。 JNDI查找的工作原理

將通過JNDI本地bean接口查找作爲參數傳遞給另一個本地bean是否安全?將來自此本地接口的每個方法調用是否會被髮送到同一個bean,否則每個調用都會被傳遞給不同的無狀態bean,如@EJB之際所示。

回答

1

您不能保證使用JNDI,您將爲您提供相同的EJB實例,因此它與使用@EJB@Inject的依賴項注入相同。 @EJB和JNDI查找之間唯一的區別是SFSB。在這種情況下,每次使用JNDI查找時,容器都需要爲您提供新的SFSB實例。

但是,在我看來,在EJB 3.x和依賴注入時代,更容易理解@EJB/@Inject註釋。無需傳遞任何對象引用,只需使用@EJB在每個EJB中定義您的依賴關係(EJB協作者)即可。

+0

是的。 DI是非常有用的,但我不知道如何使用它實現運行時服務門面。有什麼方法嗎? – 2011-12-23 13:30:55

+0

那麼,您是否使用運行時提供的值(即方法參數)來訪問給定的EJB? – 2011-12-23 13:35:55

+0

是的。我有兩個具有相同接口的無狀態bean。根據用戶的操作,我需要選擇其中的一個來處理請求。 – 2011-12-23 13:42:42