Spring 中默认都是singleton模式,getBean方法调用时都是返回的同一个实例.
<bean id="beanA" class="com.profile.springtest.BeanA">
<property name="beanB"><ref local="beanB"/></property>
</bean>
<bean id="beanB" class="com.profile.springtest.BeanB" scope="prototype">
</bean>
如上的配置,虽然beanB配置的是prototype,但由于beanA是singleton,只实例化一次,所以beanA中的beanB每次使用的都是同一个实例,如果需要每次取到beanB的不同实例,可以使用spirng的lookup机制.
<bean id="beanA" class="com.profile.springtest.BeanA" scope="prototype">
<property name="beanB"><ref local="beanB"/></property>
</bean>
<bean id="beanB" class="com.profile.springtest.BeanB" >
</bean>
如上的配置beanA配置为prototype,每次getBean("beanA"),获取都是不同的实例,但使用的beanB都是同一个实例.