我有一个Managed 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
问候。
答案 0 :(得分:2)
使用@PostConstruct
是正确的方法。
在在ManagedBean上调用构造函数之后,注入了EJB。
这就是@PostConstruct
注释的原因。
以下是the documentation的第一行:
PostConstruct注释用于在完成依赖注入以执行任何初始化之后需要执行的方法。