案例1:假设我们在原型bean中注入单例bean,那么如果我们调用prototype bean,将会创建多少个实例。
考虑一下情景: -
<bean id="a" class="A" scope="prototype">
<property name="b" ref="b">
</bean>
<bean id="b" class="B">
案例2:假设我们在singleton bean中注入Prototype bean,那么如果我们调用singleton bean,将会创建多少个实例。
考虑一下情景: -
<bean id="a" class="A" >
<property name="b" ref="b">
</bean>
<bean id="b" class="B" scope="prototype">
答案 0 :(得分:1)
我正在回答你问题的一部分。
案例2:具有原型bean依赖关系的单例bean
使用这种配置,预计当你从应用程序上下文中获取A时,它将与新B连接,因为我们声明B bean是原型范围。但不会发生。
当应用程序上下文获得初始化时,它会看到A是一个单例bean,并在将其与所有依赖项集连接后将其初始化为上下文。因此,当我们为A请求上下文时,从然后开始,它每次返回相同的bean,所以每次都会得到相同的B 。
您可以使用查找方法注入来解决/ 克服这个问题。请参阅此issue of YCM。
答案 1 :(得分:0)
单例bean将始终引用同一个对象。原型将创建尽可能多的实例,引用bean。您提供的用例不会改变这种范例。