注入使用@Named值的Bean

时间:2012-11-16 10:30:47

标签: jsf cdi inject

如何使用@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。没有注射完成。我的错。

1 个答案:

答案 0 :(得分:3)

CDI按类型(和限定符)选择可注入的bean,而不是注释参数。该名称用于从视图中寻址CDI bean,例如小面。