1
我們在學校學習EJB 3.0,並試圖確定我們的老師提出的問題的最佳實踐。我們還沒有使用Spring。EJB3.0:使用依賴注入而不是會話對象
問題如下: 創建一個EJB,記錄同一用戶上次調用bean的時間(調用第一個用戶John),並將其顯示在Web(servlet)上下文中。如果一個不同的用戶(稱他爲Bill)調用這個bean,它顯示了Bill最後一次調用bean的時間,這與John最後一次做的時間不同。
現在,我們可以使用servlet請求中的會話對象來執行此操作。這將爲每個會話分配一個EJB實例,而不會利用依賴注入。像這樣的(僞):
doGet{
timeManagerEJB = session.getattribute("localTimeEJB");
if(timeManagerEJB == null) {
timeManagerEJB = InitialContext.lookup("path...");
session.setAttribute("localTimeEJB", timeManagerEJB);
}
}
這是做的最好的方法還是有內置的EJB框架的功能來處理狀態EJB的多個實例,可能採取的依賴注入的優勢在哪裏?