2017-07-13 14 views
0

CDI注入豆にゲッターとセッターが必要ですか? BeanがCDI用いて注入され

@Inject Person person; 

は推奨/必要セッターとゲッターですか? http://docs.oracle.com/javaee/6/tutorial/doc/gjbbp.html

+1

この例では、JSFについての詳細は、豆はあなたがゲッター/セッターを必要とCDI注釈とともに使用管理です。 CDI Beanにゲッター/セッターを置く必要はありません。代わりに、私は@Namedを使用しています、私はJSFを使用しています – Rouliboy

+0

はなく、JSFの注釈(例えばManagedBean)。したがって、JSFを使用していない場合、getter/setterは必要ありません。 –

+0

コードを削除して、コードをテストし、自分で数字を入力しますか?可能な重複:https://stackoverflow.com/questions/33383446/do-i-need-getter-for-the-injected-conversation-interface-in-cdi-bean –

答えて

3

:他に1つのBeanを注入するゲッターまたはセッターメソッドを作成する必要がないこと

注意。 CDIは注入されたフィールドに直接アクセスすることができます(プライベートであっても)。フィールドの名前は任意です。何が注入されるのかを決定するフィールドのタイプです。

2

CDIコンテナ依存性注入のJava EE 6アプリケーション内の異なる注入をターゲットにすることができます:私がこの文書を発見したが、私はそれが何を意味するのか理解していない

import javax.inject.Inject; 
import javax.inject.Named; 

@Named 
@SessionScoped 
public class myJSFBean{ 

    @Inject Person person; 

    public void setPerson (Person person){ 
    this.person = person; 
    } 
    public Person getPerson(){ 
    return person; 
    } 

ポイント:フィールド、コンストラクタとセッター。あなたは注入点としてそれを使用しない場合

だから短い答えはノーである、あなたはセッター方法を必要としません。

は同様にあなたが経験によってCDI環境では多くのローミングサービス、まだコンテナによって可能に注入された同じフィールドを作成していないフィールドの状態を(アクセスするための1を必要としない限り、無視することができますゲッター他のコンポーネントでアクセスすることができます)。 Weld Documentationによれば

関連する問題