我有两个豆。第一个bean languageOfSystem:
@Named(value = "languageOfSystem")
@SessionScoped
public class LanguageOfSystem implements Serializable {
@Inject private JsfUtils eeJsfUtils;
第二个bean userBb:
@Named(value = "userBb")
@SessionScoped
public class UserBb implements Serializable, LangUpdInterface {
@EJB
private EjbUtils ejbUtils;
@EJB
private PuserFacade puserFacade;
@Inject
private Direction direction;
@Inject
private PortfelDao portfelDao;
@Inject
private LanguageOfSystem languageOfSystem;
我将
languageOfSystem
注入到userBb
中,并且NetBeans IDE发出与该注入一致的警告:no enabled eligible for injection beans are found
但是我可以从
languageOfSystem
中的userBb
调用方法,并且工作正常。因此,此警告重要吗?我应该更改水位吗?还有第二个问题。在这种情况下,我使用observer design pattern,其中
userBb
是依赖项,而languageOfSystem
是具有依赖项列表的主题。我通过从userBb
调用适当的方法在主题列表中注册languageOfSystem
。关于两个会话Bean是否正确? 最佳答案
但是我可以从userBb中的languageOfSystem调用方法
工作良好。
您的代码看起来没有错-并且可以正常工作。因此这似乎是Netbeans的问题。
还有第二个问题。在这种情况下,我使用观察者设计模式,
其中userBb是依赖的,而languageOfSystem是其中的主题
有一个家属列表。我通过调用在主题列表中注册userBb
languageOfSystem中的适当方法。说到对吗
两个会话bean?
您是否知道CDI规范包含功能强大且typesafe implementation的观察者模式?您绝对应该检查一下。
还有两件事要在这里提及:
@Named(value = "languageOfSystem")
@Named(value = "userBb")
您提供的值已经是默认值。所以你可以离开它
并直接写
@Named
即可。关于您要发布的代码:完全不需要
@Named
-它所做的只是提供在JSF中使用的EL名称。您的代码将
如果完全跳过@Named,效果也一样...