Внедрение компонента Statefull Bean внутрь компонента без состояния

При введении stateful session bean внутри stateless session bean с помощью DI, что происходит точно: контейнер внедрил новый экземпляр statefull bean для каждого bean-компонента без состояния (который существует в пуле), или это один и тот же экземпляр, общий для них?

Почему указано, что с помощью JNDI в этом случае лучше, чем DI?

Я действительно не понял этого:)

Спасибо:)

2 ответа

Для каждой сессии @Statefull будет новым экземпляром. @Statefull не является прямым экземпляром, это прокси и может быть изменен каждый раз, когда это необходимо, даже внутри @Stateless

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

Использование JNDI или нет, не имеет никакого значения в этом случае. Состояние не может быть общим для многих клиентов, и каждый экземпляр statelss является отдельным клиентом. Если вы будете использовать JNDI, то в зависимости от того, где вы выполняете поиск, вы можете получить новый экземпляр с сохранением состояния при каждом вызове без сохранения состояния.

Любая причина, почему вы хотели бы вводить с сохранением состояния в безгражданстве?

Другие вопросы по тегам