Мы изучаем EJB 3.0 в школе и пытаемся определить наилучшую практику для задачи, поставленной нашим учителем.Мы еще не используем Spring.
Проблема заключается в следующем: создайте EJB-компонент, который отслеживает время последнего вызова компонента одним и тем же пользователем (вызов первого пользователя Джон) и отображает его в видевеб (сервлет) контекст.Если другой пользователь (назовите его Биллом) вызывает бин, он показывает, когда Билл в последний раз вызывал бин, что отличается от времени, когда Джон последний раз это делал.
Теперь мы можем сделать это, используя объект сеанса изЗапрос сервлета.Это будет назначать каждому сеансу экземпляр EJB и не использовать преимущества внедрения зависимости.Например, (псевдокод):
doGet{
timeManagerEJB = session.getattribute("localTimeEJB");
if(timeManagerEJB == null) {
timeManagerEJB = InitialContext.lookup("path...");
session.setAttribute("localTimeEJB", timeManagerEJB);
}
}
Это лучший способ сделать это или есть функция, встроенная в EJB-инфраструктуру для обработки нескольких экземпляров EJB с состоянием, возможно, с использованием внедрения зависимостей?