2016-04-06 10 views
1

Spring Beansの設定

1-クラスAがプロトタイプとして構成されたクラスA内のメンバーとして、シングルトンとして構成されたクラスAと子クラスBを持つ場合のシナリオ。

2最初のものとは逆のもう1つのシナリオでは、クラスAがプロトタイプとして定義され、クラスBがシングルトンとして定義されています。

これらのクラスAとBを要求したとき、Springコンテナがこれらの2つの状況をどのように初期化して処理するのか?

答えて

1

この答えを見てみてください - あなたはいつもより狭い範囲(例えば、セッションスコープのBean)の Beanに広い範囲(例えばAシングルトン)の豆を注入することができますSpring session-scoped beans as dependencies in prototype beans?

を、しかし、それ以外にも にスコーププロキシが必要です。

これはあなたの質問に当てはまります。

  1. 狭い範囲のBeanを広いスコープのBeanに注入しています。 (プロトタイプはシングルトンよりも狭い)。それはあなたのために働くはずです。

  2. 狭いスコープのBeanに広いスコープBeanを注入しようとしています。スコープ付きプロキシを使用する必要があります。

+0

本当にありがとうございます。しかし、ここでの質問は...クラスAまたはクラスBの要求があった場合、どのようにこれらの要求に対処するのか? @asg –

+0

@OmarAlQuaseer最近の返事に対するお詫び。あなたのケース1はまっすぐ進む、つまりシングルトン内にプロトタイプを注入することです。プロトタイプは、シングルトン(これはより長い寿命のビーン)と比較して狭い範囲のビーン(すなわち、短い寿命のビーン)である。したがって、あなたは大丈夫です。 – asg

+0

プロトタイプのbean ..(つまり、より短い寿命のbeanの中のより長いlife-span bean)の中にシングルトンを挿入しようとしている2番目のケースはトリッキーなケースだけです。だから、このケースでは、直接依存関係ではなくスコープ付きプロキシ(シングルトンBean)を使用することを推奨します。私にあなたのためにいくつかのコードを入れてみましょう。 – asg

関連する問題