春季的不同范围

时间:2018-10-08 07:15:13

标签: java spring spring-mvc

如果我们创建两个类的bean,一个具有单例作用域,另一个具有原型作用域。如果单例bean引用原型bean,将创建多少个实例?内部会发生什么?

1 个答案:

答案 0 :(得分:2)

Spring诞生于IoC(控制反转)框架。来自documentation

  IoC也称为依赖注入(DI)。这是一个过程   对象定义它们的依赖关系,即其他对象   他们只能通过构造函数参数来使用   工厂方法或在对象实例上设置的属性   从工厂方法构造或返回之后。的   然后,容器在创建Bean时注入那些依赖项。   此过程从根本上讲是逆过程,因此名称为Inversion of   Bean本身的控制(IoC),控制实例化或   通过直接构造其依赖关系的位置   类或诸如服务定位器模式之类的机制。

在您的情况下:如果A是引用范围为原型的B对象的单例对象,则B将实例化一次,因为A只会调用一次(在创建期间)。