2016-09-30 21 views
1

ケース1:プロトタイプBean内にシングルトンBeanを注入し、プロトタイプBeanを呼び出すと、いくつのインスタンスが作成されると仮定しますか。Spring beanスコープ:シングルトンとプロトタイプ

<bean id="a" class="A" scope="prototype"> 
<property name="b" ref="b"> 
</bean> 

<bean id="b" class="B"> 

ケース2:我々はシングルトンBeanを呼び出す場合に作成されますどのように多くの場合、その後シングルトン豆の内部でプロトタイプBeanを注入していると仮定 - :

は、シナリオを検討してください。

はシナリオを考えてみましょう: -

<bean id="a" class="A" > 
    <property name="b" ref="b"> 
</bean> 

<bean id="b" class="B" scope="prototype"> 

答えて

0

シングルトンBeanは、常に同じオブジェクトを参照します。プロトタイプには、Beanが参照される回数だけ作成されたインスタンスが多数存在します。あなたが提供したユースケースはこのパラダイムを変えません。

1

ご質問の一部にお答えしています。

ケース2:この構成では、プロトタイプ豆の依存関係

とシングルトンBeanは、あなたがアプリケーションコンテキストからAをフェッチ史上ときに我々はB Beanを宣言したとして、それは新しいBで配線されることが期待されますプロトタイプの範囲です。しかし、このは発生しません

に初期化されると、AはシングルトンBeanであるとみなされ、すべての依存関係が設定された状態で配線された後でコンテキストに初期化されます。したがって、からへのコンテキストを要求すると、毎回同じbeanが返されるので、毎回と同じBが返されます。

あなたはルックアップメソッドインジェクションを使用してこれを克服/解決することができます。これはarticleを参照してください。

関連する問題