假设两个类
@Scope("prototype")
Class A{
@Autowired
private B b;
}
@Scope("singleton")
Class B {
}
并调用以下ApplicationContext方法。
context.getBean("A")
将导致创建新的A
bean,但也会创建一个新的B
bean并注入它或使用现有的B
bean。
答案 0 :(得分:1)
答案是否定的。由于B
是Singleton范围的。 B
bean的生命周期总是每个容器一次,无论有多少A
对其进行引用。
答案 1 :(得分:0)
不。它是类B的唯一实例,因为它是单例的,但是当为A创建原型实例时,所有Spring容器都会为B创建代理,并将其分配给A的新实例。这样做是在维护单例和原型的属性。
但是请确保您需要此类参考。Spring使用@Lookup
批注来查找相关参考。