这是一个很好的练习问题...
我们正在将JSF托管bean转换为JSF 2.2中的CDI bean。虽然这样做,但在很多bean中,我们需要一些会话bean。
我们最初打算@Inject那些,但另一种选择是将它们注入父级中的受保护变量" FacesBean"类。
答案 0 :(得分:0)
所以一个接一个:
1)良好的做法?
如果您有类层次结构,我建议您@Inject
将其放入父级的私有字段中,然后创建一个具有最低可见性(可能受到保护)的getter方法。只需坚持围绕Java封装的一般良好实践规则。
2)@ManagedBean
和@Inject
?
只要您使用bean发现模式all
(使用空beans.xml
),您的类将自动选为托管bean - 包括使用@ManagedBean
注释的类。只要它是一个豆子,注射就可以了。所以是的,只要类可以自动成为bean(例如它不是@Vetoed
或不可提供的等),注入就会起作用。)