假设有两个类ClassA和ClassB。让我们假设ClassB依赖于ClassA。在配置文件中,如果我们将ClassA的范围定义为singleton,将ClassB的范围定义为Prototype,那么每次创建ClassA的bean实例时,ClassB的实例会发生什么?每次返回ClassA的实例时,是否返回相同的ClassB实例或创建新实例?Spring bean的作用域。单例和原型
谢谢!!!
假设有两个类ClassA和ClassB。让我们假设ClassB依赖于ClassA。在配置文件中,如果我们将ClassA的范围定义为singleton,将ClassB的范围定义为Prototype,那么每次创建ClassA的bean实例时,ClassB的实例会发生什么?每次返回ClassA的实例时,是否返回相同的ClassB实例或创建新实例?Spring bean的作用域。单例和原型
谢谢!!!
如果ClassB是原型,总是创建一个ClassB的新实例,它在创建时不会照顾其他类。
因此,ClassB是原型和ClassA单例,您可以在某些时候在您的应用程序中拥有N个ClassB的实例,并且只有1个ClassA。
在你的情况下,作为ClassA的只有一个实例将您的应用程序生命周期的存在,只会有一个实例ClassB的,这将是其他豆类在您的应用程序引用的其他任何ClassB的不同
每当我们创建ClassA的bean实例 时,ClassB的实例会发生什么?
由于ClassA
是单例,一个单一实例将的ClassB
所有实例之间共享。
是否返回同一个ClassB实例或创建新实例 每次返回ClassA的实例?
我想在这里你的意思将在同一ClassA的实例被退回或新的实例被创建 返回ClassB的每个时间点?
每创建一个实例ClassB
,共享的ClassA
实例将被(重新)使用。
我确定同样的ClassA实例会返回...但不确定ClassB的实例。谢谢!!! –
每当我们创建ClassA的bean实例 时,ClassB的实例会发生什么?
没什么,如果ClassA的是单将只有一次实例化。
是否返回同一个ClassB实例或创建新实例 每次返回ClassA的实例?
不同的实例,因为它是一个原型bean。但是因为ClassA是单身人士,所以每次都会以同样的方式实现(取决于你提到的这些类之间的关系)
那么多的春季程序员......:D。在原型bean中注入单例bean将导致原型bean的不同实例使用单例bean的相同实例。对于相反的情况(在Singleton中注入一个原型bean),如果默认情况下会使用原型bean的同一实例来提供单例bean(参见[本文])(http://prasanthnath.wordpress.com/2013/ 03/21/injection-a-prototype-bean-into-a-singleton-bean /)获取更多信息)。 –