11

春のライフサイクルについて混乱しています。

XmlBeanFactory beanFactory 
= new XmlBeanFactory(new ClassPathResource("SpringHelloWorld.xml"));

上記のコードスニペットがオブジェクトを作成するかどうか?

上記の答えが正しい場合。

a)次に、スコープが「シングルトン」であるBeanの場合、上記のコードスニペットで作成されたオブジェクトを取得します。私は正しいですか、間違っていますか?

b)スコープが「プロトタイプ」の場合、作成されたオブジェクトが未使用かどうか。なぜなら、コンテナは常に新しいオブジェクトを返すからです。

XmlBeanFactory beanFactory 
= new XmlBeanFactory(new ClassPathResource("SpringHelloWorld.xml"));

上記のコードスニペットがオブジェクトを作成するかどうか?

答えが間違っている場合、

SpringFrameworkがBeanの定義が正しいかどうかを検証する方法。

From the answer of Henry

Usually, singleton beans are created when the context starts. This can be changed with the lazy-init or default-lazy-init attributes.

Prototype beans are only created when needed.

Only syntactically, there might still be errors when the bean is instantiated, for example if a required property is not provided.

4

2 に答える 2

8

BeanFactory起動時にシングルトンを事前にインスタンス化することはありませんApplicationContext。したがって、Beanがレイジーでなく、シングルトンであっても、作成されません。

prototypeBeanはオンデマンドで作成され、プロトタイプBeanを要求するたびに、新しいインスタンスを取得します。ただし、自動配線中にそのようなBeanが使用されると、同じインスタンスが永久に使用されます。

ApplicationContextすべてのシングルトンで熱心に作成され、オンデマンドでのみBeanのプロトタイプが作成されます。

も参照してください

于 2012-12-21T11:00:01.757 に答える
1

通常、シングルトンBeanは、コンテキストの開始時に作成されます。これは、lazy-initまたはdefault-lazy-init属性で変更できます。

プロトタイプBeanは、必要な場合にのみ作成されます。

于 2012-12-21T10:58:12.360 に答える