Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Аннотация @EJB / 5 сообщений из 5, страница 1 из 1
17.01.2012, 14:29:32
    #37618039
amigaboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация @EJB
Имеет смысл объявлять объект, который инжектился через аннотацию @EJB как static

Код: java
1.
2.
3.
4.
5.
@EJB
private BeanLocal bean;

@EJB
private static BeanLocal bean;



на что это может повлиять?
...
Рейтинг: 0 / 0
17.01.2012, 14:31:30
    #37618049
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация @EJB
http://stackoverflow.com/questions/3195365/injecting-a-static-ejb-nonsense
Отучайтесь от использования статики.
...
Рейтинг: 0 / 0
17.01.2012, 14:35:29
    #37618070
amigaboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация @EJB
Blazkowicz http://stackoverflow.com/questions/3195365/injecting-a-static-ejb-nonsense
Отучайтесь от использования статики.Там описывается инжект EJB в другой EJB, как я понял. А здесь вопрос про кучу JSF-бинов клиентского приложения, с множеством одновременно работающих пользователей.

Я правильно понимаю, что все JSF-бины для текущей авторизованной сессии будут в случае статика обращаться к первому порожденному EJB-бину, и только к нему?
...
Рейтинг: 0 / 0
17.01.2012, 14:39:02
    #37618084
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация @EJB
amigaboyЯ правильно понимаю, что все JSF-бины для текущей авторизованной сессии будут в случае статика обращаться к первому порожденному EJB-бину, и только к нему?
static никак не связан с сессией. Поэтому ссылка будет одна для всех сессий. Так как интерфейс локальный, то это вообще будет один единственный экземпляр для всех.

Сервер не должен дать этого делать даже для JSF, потому что Stateless пойдёт лесом. Нужно использовать Singleton, который в последних EJB появился.
...
Рейтинг: 0 / 0
17.01.2012, 15:16:47
    #37618199
rabiter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аннотация @EJB
Рекомендовал бы по возможности использовать CDI (JSR-299). EJB бины надо использовать если они дают какое-то преимущество перед простыми CDI бинами ( http://docs.jboss.org/weld/reference/latest/en-US/html/beanscdi.html#d0e868 ).
Если хотите чтобы отдельный бин создавался для каждой сессии, сделайте его @SessionScoped.
Тут есть одна тонкость на которую надо обратить внимание. Есть две аннотации @SessionScoped:
Одна от JSF: javax.faces.bean.SessionScoped
и вторая от CDI: javax.enterprise.context.SessionScoped

Так вот вместо JSF managed beans я бы лучше использовал опять же бины от CDI: http://stackoverflow.com/questions/4347374/jsf-backing-beans-managedbean-or-cdi-beans-named
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Аннотация @EJB / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]