Я хочу реализовать обратный вызов для компонента сеанса в JSF2/CDI, если компонент был активирован или деактивирован контейнером.
Эти методы я хочу использовать для запуска транзакции в EJB. Сам EJB имеет состояние, управляется bean-компонентом с помощью расширенного контекста транзакции.
Есть обратный вызов (PostConstruct), который вызывается после создания бина из контейнера CDI.
Мой Бин выглядит примерно так:
@javax.inject.Named
@javax.enterprise.context.SessionScoped
public class MyBean implements Serializable {
@EJB private MyEJB myEJB;
public MyBean () {
super ();
// do someting more (or not)
}
@PostConstruct
public void init () {
// do something for init ...
}
public void businessMethod () {
// ..
}
}
Метод @PostConstruct вызывается только один раз в начале жизненного цикла.
Я хочу получать информацию от контейнера, когда bean-компонент (повторно) активируется при запуске запроса или bean-компонент «припаркован» в конце запроса.
Я думаю, что @PreDestroy здесь не решение.
Спасибо вам за помощь.
С уважением Рональд
@PreDestroy
? google.com/search?q=cdi+bean+session+ деактивация+обратный вызов - person Kukeltje   schedule 07.12.2015@Named
, а не@ManagedBean
). И да, у них есть жизненный цикл, как вы уже знаете, благодаря аннотациям@PostConstruct
и@PreDestroy
. Но они не объединены в пул, как EJB, поэтому при каждом запросе нет «активации» или «деактивации». Sessionbean используется, если вызывается один из его методов, вот и все. Но, пожалуйста, укажите реальный вариант использования (нетехнический)... Зачем вам это нужно? Вы первый, кто задает этот вопрос, поэтому я думаю, что это meta.stackexchange.com/questions/66377/what-is-the-xy-problem - person Kukeltje   schedule 07.12.2015FacesContext
… но все же, каков вариант использования - person Kukeltje   schedule 08.12.2015FacesContext
. У меня была идея, которая позволила бы мне избавиться от раздражающего исключения ленивой инициализации. Приложение старше и имеет очень плохой дизайн. Имеет ужасно большие сети объектов. Object_a ссылается на список экземпляров object_b, которые могут ссылаться (как список) снова на экземпляры Object_C. В клиенте мне нужно все дерево/сеть объектов в самых редких случаях. Это жестоко. - person Ronald   schedule 08.12.2015