2011-11-21 21 views
3

私はJSFアプリケーションを書いている、と私は例えば、別のものに名前のBeanを注入する必要があります。@SessionScoped CDI Beanを別のセッションBeanに挿入すると、それらは同じセッションに属しますか?

@Named 
@SessionScoped 
public class BeanA implements Serializable{ 
    @Inject private BeanB b; 
    public void doSth(){ 
     b.doSth(); 
    } 
} 

@Named 
@SessionScoped 
public class BeanB implements Serializable{} 

それらの両方SessionScopedをしている、と私は開催するBeanAとその注入さBeanBのインスタンスを願っています同じセッション状態。

BeanBインスタンスをランダムに選択または作成するか、同じセッションIDを持つインスタンスを選択しますか?ありがとうございます。

+0

なぜ、ランダムなものを選ぶ可能性があると思いますか?それは世界中の壊れたスレッドセーフなアプリケーションにしかつながりません。 – BalusC

+0

私は本当にそれが新しいです...私は文脈が通常のオブジェクトとしてそれを扱うだろうと思ったので、フィールドの前に@Injectだけがあります。 CDI実装の判断では、2つのオブジェクトが依存していますか? –

答えて

1

BeanBはセッションスコープであるため、挿入するたびに(現在のセッションに基づいて(つまり、@Newのcept)に関係なく)、現在のセッションに基づいて管理されます。

関連する問題