我有两个豆子。 第一个 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
的方法,但效果很好。这个警告是否很重要,我应该改变smth吗?
第二个问题。我在这种情况下使用observer design pattern,其中userBb
依赖,languageOfSystem
是具有依赖列表的主题。我通过从userBb
调用适当的方法在主题列表中注册languageOfSystem
。这对两个会话bean来说是对的吗?
答案 0 :(得分:4)
但是我能够在userBb和它中调用languageOfSystem的方法 工作正常。
您的代码看起来没错 - 而且它有效。所以这似乎是一个Netbeans问题。
第二个问题。我在这种情况下使用观察者设计模式, 其中userBb是依赖的,而languageOfSystem是其中的主题 有一个家属列表。我通过调用在主题列表中注册userBb languageOfSystem的适当方法。它是对的 这两个会话bean?
您是否知道CDI规范包含强大且typesafe implementation的观察者模式?你一定要看看这个。
还有两件事要提到:
@Named(value = "languageOfSystem")
@Named(value = "userBb")
@Named
。@Named
-
它所做的就是提供一个用于JSF的EL名称。你的代码会
如果你完全跳过@Named就可以了。答案 1 :(得分:2)