1

次のスプリング構成があります。

<bean id="abcService1" class="com.service.ABCServiceImpl" />
<bean id="abcService2" class="com.service.ABCServiceImpl" />

上記の構成に対して、Spring は異なる ID を持つ 2 つのインスタンスを作成しますか? はいの場合、両方の Bean 定義はシングルトンですが、コンテキスト内に同じオブジェクトの 2 つのインスタンスがまだあります。それはもはやシングルトンではないということですか?

4

2 に答える 2

2

はい。2 つの個別のインスタンスが作成されます。はい、これはもはや古典的な意味でのシングルトンではありません (JVM ごとに 1 つのインスタンス) - (あったとしても) ただし、作成された Bean (それぞれ) にはシングルトン スコープがあります (Spring の意味で)。特定のクラスのオブジェクトが常にシングルトン (JVM ごとに 1 つのインスタンスのみ) であることを本当に保証したい場合は、 シングルトンを Spring Bean にする正しい方法 を参照してください。

しかし、問題は、「本当のシングルトン」が本当に必要かどうかです!

http://docs.spring.io/spring/docs/3.2.1.RELEASE/spring-framework-reference/html/beans.html#beans-factory-scopesを参照してください。

于 2013-09-26T11:11:53.090 に答える