2013-02-03 72 views
0

我有幾個無狀態bean和一些被這個bean調用的服務類。我不能直接將bean實例傳遞給該服務類。ejb獲取當前正在執行的bean

有什麼方法可以獲取當前正在執行的bean實例嗎?我只是想知道是否有任何現有的機制,所以我不需要編寫攔截器和相關邏輯來保存bean實例。

更具體:

public class MyBean implements MyBeanInterface, CommonBeanInterface { 
    public void businessMethod() { 
     SomeService service = ... // service is somehow obtained 
     service.doWork(); 
    } 
} 

public class SomeServiceImpl implements SomeService { 
    public void doWork() { 
      CommonBeanInterface currentBean = getCurrentBean(); // its implementation I need 
    } 
} 

所以在服務類我需要得到bean實例調用該服務。

任何信息會有幫助!

回答

1

我不認爲有一個API來標識調用該服務的bean。但請注意,如果服務與bean位於同一容器中(即不涉及遠程調用),它們將在同一個線程上執行。所以你可以使用ThreadLocal傳遞一些信息。

+0

是的''ThreadLocal'是我想用的,但認爲有一個現有的API –

相關問題