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です.