Почему я не могу инициализировать атрибут в управляемом конструкторе Bean?
У меня есть управляемый Боб:
public class CategoriaManagedBean {
@EJB
private CategoriaBeanLocal categoriaBean;
private Categoria categoria;
private List<Categoria> menu;
}
В моем конструкторе я пытаюсь:
public CategoriaManagedBean() {
menu = categoriaBean.findByIdCategoriaPadre(0);
}
Но я получаю ошибку "не могу создать экземпляр класса", почему я не могу инициализировать атрибут в конструкторе?
Я исправляю проблему с помощью:
@PostConstruct
public void init() {
menu = categoriaBean.findByIdCategoriaPadre(0);
}
Но я хочу знать причину, и если у меня все хорошо с @PostConstruct
Приветствую.
1 ответ:
Использование
@PostConstruct
это правильный подход.EJBs вводятсяпосле того, как конструктор вызывается на ManagedBean.
Вот почему существует
@PostConstruct
аннотация.Вот первая строка из документации:
Аннотация PostConstruct используется для метода, который должен быть выполнен после внедрения зависимостей для выполнения любой инициализации.