10

私は私の質問に関連してこの質問をしています:

春のシングルトンスコープ

Spring シングルトンは、コンテナごと、Bean ごとにリファレンス マニュアルで定義されています。

コンテナごとの意味は、次のようになります。

ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml")
MyBean myobj=(MyBean)context.getBean("myBean"); //myBean is of singleton scope.
MyBean myobj1=(MyBean)context.getBean("myBean");

Beans.xml:

<bean id="myBean" class="MyBean"/>

次にmyobj==myobj1、 true.Means 両方が同じインスタンスを指していることになります。

ビーンごとのコンテナごとのフレーズのビーンごとの部分について、私は多少混乱しました。ビーンごとに次のことは正しいですか:

私たちが好きなら

ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml")
MyBean myobj=(MyBean)context.getBean("myBean"); 
MyBean myobj1=(MyBean)context.getBean("mySecondBean");

Beans.xml:

<bean id="myBean" class="MyBean"/>
<bean id="mySecondBean" class="MyBean"/>

その後myobj==myobj1、falseに出てきます。つまり、それらは2つの異なるインスタンスですか?

4

3 に答える 3

6

それは正しいです。

それが役立つ場合は、Spring Bean を、そうでなければコンストラクターを使用して Java コードで手動で作成するインスタンスと考えることもできます。

Spring XML ファイルで Bean を定義することにより、その Bean (インスタンス) が Spring のアプリ コンテキストに登録され、そのインスタンスをコードの他の領域に渡すことができます。

新しい Bean を作成することで、効果的に新しいインスタンスを作成しています。したがって、同じクラスの任意の数の Bean (インスタンス) を作成できる可能性があります。

于 2012-10-16T15:33:37.303 に答える
-1

はい、あなたが正しい。それをテストすることはあなたに言ったでしょう。

于 2012-10-16T15:24:46.610 に答える