2011-12-23 4 views
0

Я создаю небольшую основу для обработки данных с помощью EJB 3.
У меня есть объект Entity Access Object, который абстрагируется от источника данных. Теперь мне нужен какой-то завод, который даст мне правильный компонент для запроса объектов.EJB3. Как работает поиск JNDI

Безопасно ли просматривать просмотренные через интерфейс JNDI-интерфейсы в качестве параметров для других локальных компонентов? Будет ли обращение каждого метода из этого локального интерфейса адресовано одному и тому же компоненту или каждый вызов будет передан различным фазам без состояния, как в случае с @EJB?

ответ

1

У вас нет гарантий, что с помощью JNDI вы получите тот же экземпляр EJB, что и то же, что и для инъекции зависимостей, используя @EJB или @Inject. Единственная разница между @EJB и JNDI-поиском - это SFSB. В этом случае контейнер должен предоставить вам новый экземпляр SFSB каждый раз, когда вы используете JNDI-поиск.

Однако, на мой взгляд, в эпоху EJB 3.x и иждивенческой инъекции легче понять аннотацию @EJB/@Inject. Не нужно передавать какие-либо ссылки на объекты, просто определите свои зависимости (EJB-коллабораторы) в каждом EJB, используя @EJB.

+0

Да. DI очень полезен, но я не имею ни малейшего представления о том, как реализовать с ним фасад службы runtime. Есть ли способы? –

+0

Итак, вы используете предоставленные значения времени выполнения (т. Е. Параметр метода) для доступа к данным EJB? –

+0

Да. У меня есть две разные фаз без апатии с одинаковым интерфейсом. И в зависимости от действий пользователя мне нужно выбрать один из них для обработки запроса. –

Смежные вопросы