0

@Named値とともにアノテーションを使用するBeanを注入するにはどうすればよいですか?

@Named
public class LanguageService{
   ...
} 

public class SomeOtherBean{

    @Inject
    private LanguageService languageService
}

問題なく動作します-しかし、私が使用している場合、注入する方法:

@Named("lang")
public class LanguageService{
   ...
} 

@Injectのように値を持つことはできません@ManagedProperty。(しかし、私はCDIにとどまりたくありません)

編集:Beanの名前は関係ないことに気づきました。NPEにつながる私の障害は、SomeOtherBean手動で作成した単純なものでした。注射は行われませんでした。私のせい。

4

1 に答える 1

3

CDI は、注釈パラメーターではなく、タイプ (および修飾子) によって注入可能な Bean を選択します。この名前は、Facelets などのビューから CDI Bean をアドレス指定するために使用されます。

于 2012-11-16T10:50:09.890 に答える