Атрибут HttpSession против компонента CDI SessionScoped

В моем проекте у меня есть bean-компонент @Stateful UserSessionData, который хранит только пользовательские данные. После входа пользователя в систему он вызывается с помощью поиска JNDI, заполняется и сохраняется в атрибуте HttpSession. Мой вопрос: не должен ли я вместо этого создать CDI-компонент @SessionScoped UserSessionData, внедрить и заполнить его в моем компоненте входа в систему? Затем я могу внедрить его в резервные компоненты, которым нужны данные, вместо использования HttpSession.getAttribute. Какой метод предпочтительнее?


person John    schedule 11.05.2016    source источник
comment
Этот вопрос плохо продуман. Технически вы спрашиваете @Stateful EJB против @SessionScoped управляемого компонента. Они абсолютно не взаимозаменяемы. Похоже, вы совсем не понимаете смысла наличия EJB. Дубликат должен заставить вас понять, что ваш текущий вопрос не имеет никакого смысла. Кстати, правильный подход заключается в том, чтобы просто внедрить этот EJB в обычный компонент с областью действия сеанса вместо того, чтобы вручную возиться с сеансом JNDI и HTTP.   -  person BalusC    schedule 11.05.2016
comment
@BalusC 1. Я не кодировал это, и когда я увидел это сегодня, мне это показалось неправильным. 2. Я решил, что bean-компонент с областью действия сеанса, вероятно, был правильным выбором, но я хотел подтвердить. Тем более, что этот плохой кусок кода пролежал там пару лет.   -  person John    schedule 11.05.2016