2

我有一个托管 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 上做得很好

问候。

4

1 回答 1

2

使用@PostConstruct是正确的方法。

在 ManagedBean 上调用构造函数注入 EJB 。

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

这是文档的第一行:

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

于 2013-06-12T18:02:07.440 回答