2015-09-01 4 views
0

Предположим, что мы (без гражданства, например) А и B. 2 EJB вEJB инъекции и EJB бассейн

@Stateless 
public class A { 
    @EJB 
    protected B binstance; 
} 

Так после того как мы использовали наш боб в сервлет, он должен быть возвращен обратно в бассейн, и вопрос есть ли контейнер EJB «разыменовать» экземпляр B из A, то есть при следующем вызове мы могли бы получить другой объект B внутри одного экземпляра A? То же самое относится и к JAX-RS, когда мы создаем службу REST и добавляем туда некоторые другие компоненты? Создает ли JAX-RS bean-элемент как сервлет или как обычный экземпляр EJB в этом смысле (я имею в виду, что сервлеты все еще содержат ссылки на экземпляры beans)?

+0

Возможный дубликат [как состояние переменных экземпляра компонента без состояния сохраняется для следующего вызова в EJB?] (Http://stackoverflow.com/questions/26309050/how-is-state-of-instance-variables- a-a-stateless-bean-saved-for-next-invoca) – kolossus

+0

Ресурсы JAX-RS нельзя объединить как таковые. Поскольку Java EE 7 (и EJB 3.2), если вы объединяете JAX-RS с EJB (т. Е. Аннотируете ресурс JAX-RS с помощью @Stateless), JAX-RS будет объединен. Все его зависимости будут подключаться ad hoc, когда они загружаются из пула (аналогично для всех EJB, вложенных в апатию). –

+0

Вопрос в том, что происходит с B до того, как A будет помещен в пул? Является ли B разыменованным из A, и оба A и B объединены независимо, или только A возвращается в пул (поскольку он имеет ссылку на B, так как же тогда B объединился?) – user3070377

ответ

0

Ok. Итак, давайте начнем с фагов без гражданства. В случае отсутствия объектов с объектами фауны объект контролируется контейнером-контейнером. И он может предоставлять один и тот же объект в первом и втором запросах или может предоставлять разные объекты. Поэтому, кодируя, помните об этом.

Теперь, приходя к Bean A и Bean B, когда bean Выполнение выполнено, Bean B может быть разыменован. Поскольку это чисто определяется контейнером Bean на основе нагрузки и как длительность между вызовами bean A. Так что никогда не зависеть от того, что вы получите тот же объект Bean B каждый раз.

И в случае JAX-RS экземпляры для отдыха создаются, как обычные экземпляры EJB. Если фаза останова без апатридов, примените к ней правила фанатичного состояния. В этом случае вы также не будете контролировать экземпляры, предоставленные вам в вызовах отдыха адъютанта.

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

  • Нет связанных вопросов^_^