Это может быть скорее концептуальный, чем технический вопрос, однако я надеюсь, что вы можете дать мне несколько советов о том, как действовать. Мы разрабатываем большое приложение Java EE 7, которое работает без гражданства и получает запросы от клиентов. Каждый запрос содержит идентификатор сеанса, и каждый сеанс содержит большое количество объектов домена, специфичных для сеанса. Мы создали класс RequestScoped, содержащий все методы-производители для наших объектов домена. Когда запрос приходит с идентификатором сеанса, мы вызываем метод setter для производителя, чтобы установить идентификатор сеанса в компоненте CDI производителя. Теперь, если один из классов RequestScoped по цепочке нуждается в одном из объектов домена, он имеет определение @Inject в начале класса, чтобы получить объект домена от производителя. Сам Продюсер имеет соединение с inmemory DB для извлечения объектов домена оттуда и сохранения их в локальной переменной для будущего использования в этом запросе.Обновление объекта введенного домена в Java EE 7 Приложение CDI
На вопрос: Скажем, Bean A вводит объект домена X и изменяет некоторые свойства на X. Должен ли я вызвать метод «обновления» у моего производителя и передать объект домена X в качестве параметра или он автоматически обновляется в контекст? После инъекции в области запроса контейнер CDI создает прокси для доступа к фактическому компоненту. Будет ли этот прокси использоваться, как обычная ссылка? Например. если я вызову метод на моем вложенном bean-компоненте, обновит ли он компонент позади прокси-сервера?
Это звучит для меня как «Я действительно не понимаю, что такое прокси». То, о чем вы спрашиваете, точно решено тем, что CDI использует прокси; да это просто работает. Вы спрашиваете, возможно, потому, что вы уже пробовали, а что-то не получилось, как вы ожидали? – Gimby