如何使用@Named
注释和值来注入Bean?
@Named
public class LanguageService{
...
}
public class SomeOtherBean{
@Inject
private LanguageService languageService
}
没有问题 - 但如果我正在使用,如何注射:
@Named("lang")
public class LanguageService{
...
}
@Inject
的值不能为@ManagedProperty
。 (但我不想留在CDI)
编辑:
我注意到bean的命名方式并不重要。导致NPE的我的错误很简单,我手动创建SomeOtherBean
和ofc。没有注射完成。我的错。
答案 0 :(得分:3)
CDI按类型(和限定符)选择可注入的bean,而不是注释参数。该名称用于从视图中寻址CDI bean,例如小面。