Стой 2 боб не создан
Сначала для моего вопроса я использую Struts2 + Tiles2 + TopLink. НЕТ весны вообще.
Самый простой сценарий - это отображение списка сущностей на странице. Чтобы оптимизировать разрешение EntityManager в JPA, я хотел бы создать помощник (JPAResourceBean), который реализует ленивую загрузку менеджера сущностей. Для этого я собираюсь использовать объявление bean-компонента struts2:
<bean name="myfactory" class="my.model.JPAResourceBean"
scope="session" optional="false"/>
Почему бин не создается ни в сеансе? (Я использую s: свойство только для отладки)
...
<s:property value="#session.myfactory" default="buka.1"/>
...
ни в списке простых бобов:
...
<s:property value="#myfactory" default="buka.2"/>
...
Может быть, вторая часть вопроса - как разрешить этот компонент из кода Java?
1 ответ
Я нашел решение.
Дело в том, что для создания экземпляров bean-компонентов используется метод отложенной загрузки (разрешения по требованию), поэтому мой JPAResourceBean был успешно разрешен, когда я получил к нему доступ по следующему синтаксису:
ActionContext.getContext().getContainer().getInstance(JPAResourceBean.class);