Я запускаю новый проект с JavaEE 7 и объявлял Sessioncoped bean для поддержки информации пользователя, зарегистрированного в сети, в сеансе.CDI Сохраняет все ссылки на вложенные деревья в SessionScoped beans?
UserSessionBean
, как я его назвал, предназначен для облегчения работы - попытки избежать большого количества данных, которые должны храниться в сеансе Weld. Но в некоторых случаях мне нужно получить всю информацию о пользователе, поэтому добавлен метод getUser()
, который должен запросить и получить UserEntity
из JPA. Для того, чтобы этот метод выполнял свою работу, мне нужно @Inject
других ресурсов на UserSessionBean
.
Мой вопрос: Эти зависимые ресурсы будут храниться и сериализоваться в пределах UserSessionBean
Weld до тех пор, пока контекст не будет уничтожен?
Документация сварного шва говорит, что это:
Экземпляр зависимой фасоли никогда не разделяется между различными клиентами или различными точками впрыска. Это строго зависимый объект другого объекта. Он создается, когда объект, которому принадлежит , создается и уничтожается, когда объект, которому он принадлежит, является уничтожен.
Это заставляет меня думать все SessionBean
дерева хранятся швом во время жизни сессии, но как я могу держать легкий SessionBean
и использование впрыскиваются CDI ресурсов на это?
Если зависимые ресурсы не хранятся там, что произойдет с ними, когда UserSessionBean будет десериализован? –
Он может быть повторно загружен контейнером при десериализации. –
Где контейнер должен хранить ваш зависимый объект, пока ваш UserSessionBean не будет десериализован? –