如果我们创建两个类的bean,一个具有单例作用域,另一个具有原型作用域。如果单例bean引用原型bean,将创建多少个实例?内部会发生什么?
答案 0 :(得分:2)
Spring诞生于IoC(控制反转)框架。来自documentation:
IoC也称为依赖注入(DI)。这是一个过程 对象定义它们的依赖关系,即其他对象 他们只能通过构造函数参数来使用 工厂方法或在对象实例上设置的属性 从工厂方法构造或返回之后。的 然后,容器在创建Bean时注入那些依赖项。 此过程从根本上讲是逆过程,因此名称为Inversion of Bean本身的控制(IoC),控制实例化或 通过直接构造其依赖关系的位置 类或诸如服务定位器模式之类的机制。
在您的情况下:如果A是引用范围为原型的B对象的单例对象,则B将实例化一次,因为A只会调用一次(在创建期间)。