假设有两个类ClassA和ClassB。让我们假设ClassB依赖于ClassA。在配置文件中,如果我们将ClassA的范围定义为singleton而ClassB的范围定义为Prototype,那么每次创建ClassA的bean实例时ClassB的实例会发生什么?是否会返回相同的ClassB实例,或者每次返回ClassA实例时都会创建新实例?
谢谢!!!
答案 0 :(得分:5)
如果ClassB是原型,总是会创建一个新的ClassB实例,它在创建时不会处理其他类。
所以ClassB是原型和ClassA单例,你可以在某个时候在你的应用程序中拥有N个ClassB实例和1个ClassA。
在您的情况下,由于您的应用程序生命周期中只存在一个ClassA实例,因此它只有一个实例ClassB,它与您应用程序中其他bean引用的任何其他ClassB不同
答案 1 :(得分:3)
每次创建bean实例时,ClassB的实例会发生什么 ClassA?
由于ClassA
是单身,因此<{1}}的所有实例之间将共享单个实例。
是否会返回相同的ClassB实例或创建新实例 每次返回ClassA的实例?
我认为你的意思是将返回相同的ClassA实例或创建新实例 每次返回ClassB的实例?
每次创建ClassB
的实例时,都会(重新)使用共享的ClassB
实例。
答案 2 :(得分:2)
每次创建bean实例时,ClassB的实例会发生什么 ClassA?
没有,如果ClassA是单例,它只会被实例化一次。
是否会返回相同的ClassB实例或创建新实例 每次返回ClassA的实例?
不同的实例,因为它是原型bean。但是由于ClassA是单例,它每次都会以相同的方式实现。(取决于你提到的这些类之间的关系)