为什么我不能在托管 Bean 构造函数中初始化属性?



我有一个管理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

问候。

使用@PostConstruct是正确的方法。

ejb是在在ManagedBean上调用构造函数之后注入的。

这就是为什么有一个@PostConstruct注释。

这是文档中的第一行:

PostConstruct注释用于需要在依赖注入完成后执行任何初始化的方法。

相关内容

最新更新