singletonとprototypeの判別
2973 ワード
<bean id="person1" class="com.bean.life.Person">
<property name="name">
<value> </value>
</property>
</bean>
<bean id="person2" class="com.bean.life.Person">
<property name="name">
<value> </value>
</property>
</bean>
スプリングに触れたばかりの2日間、これまでこの2つの概念に誤解があったが、singletonが「同名class」を実現するすべてのbeanが同じjavaインスタンスを指していると思っていたが、上記のbeanを例にとると、person 1、person 2は同じcomであると考えられていた.bean.life.Personオブジェクトの参照、so foolish、beanの役割ドメインがsingletonに位置してもprototypeに位置しても、person 1、person 2は異なるインスタンスです!
xmlで構成されているbeanはそれぞれ異なるインスタンスです.
私たちが言っているsingletonとは、getBean()またはrefでbeanを取得すると、同じbeanが得られるのか、毎回新しいbeanインスタンスが作成されるのかを指します.Springでいうsingleton、prototypeはいずれも「一つ」beanを対象としている.したがって、
singletonとはsingle beanを指し、各beanにはインスタンスオブジェクトが1つしかなく、getBean()メソッドを何回呼び出してもref依存度にかかわらずspringコンテナにはbeanインスタンスが1つしかありません.
prototypeとは、getBean()メソッドが呼び出されるたびに、またはref依存が呼び出されるたびに、コンテナに複数のbeanインスタンスがある新しいbeanインスタンスが作成されることを意味します.
注意:Springのデフォルトの役割ドメインはSingletonです.