在抽象父类中注入常用的CDI bean

时间:2017-04-07 08:17:14

标签: jsf cdi jsf-2.2 java-ee-7

这是一个很好的练习问题...

我们正在将JSF托管bean转换为JSF 2.2中的CDI bean。虽然这样做,但在很多bean中,我们需要一些会话bean。

我们最初打算@Inject那些,但另一种选择是将它们注入父级中的受保护变量" FacesBean"类。

  1. 这是不错的做法?
  2. @Inject是否也适用于尚未转换为CDI的@ManagedBean类?

1 个答案:

答案 0 :(得分:0)

所以一个接一个:

1)良好的做法?

如果您有类层次结构,我建议您@Inject将其放入父级的私有字段中,然后创建一个具有最低可见性(可能受到保护)的getter方法。只需坚持围绕Java封装的一般良好实践规则。

2)@ManagedBean@Inject

只要您使用bean发现模式all(使用空beans.xml),您的类将自动选为托管bean - 包括使用@ManagedBean注释的类。只要它是一个豆子,注射就可以了。所以是的,只要类可以自动成为bean(例如它不是@Vetoed或不可提供的等),注入就会起作用。)