当前位置: 首页 > 知识库问答 >
问题:

Spring bean作用域。单例与原型

益富
2023-03-14

假设有两个类ClassA和ClassB。假设ClassB依赖于ClassA。在配置文件中,如果我们将ClassA的作用域定义为singleton,而将ClassB的作用域定义为Prototype,那么每次创建ClassA的bean实例时ClassB的实例会发生什么?每次返回ClassA实例时,会返回相同的ClassB实例还是创建新实例?

谢谢!!!

共有1个答案

华宏逸
2023-03-14

如果ClassB是prototype,则总是创建ClassB的一个新实例,它在创建时不会处理其他类。

因此ClassB是prototype,而ClassA是singleton,在某个时候,应用程序中可以有N个ClassB实例,而只有1个ClassA实例

在您的情况下,由于应用程序生命周期中只有一个ClassA实例,因此它将只有一个实例ClassB,与应用程序中其他bean引用的任何其他ClassB不同

 类似资料:
  • 我试图学习Guice,但下面的场景似乎很难。假设我有A、B和C类。我应该能够做到以下几点(注意,这个例子在某种程度上简化为实际情况): A是全球单身人士 当B创建C时,C的依赖项B必须是相同的实例,即从C的角度来看,B是单例的。 我尝试过创建儿童注射器: } 但是Guice给出了B已经绑定的错误(MainModule中提供了方法)。因此,我需要覆盖MainModule的B绑定,但这似乎不可能使用子

  • 问题内容: 我是spring框架的新手,从一些教程开始学习它。 我有以下文件, #MainProgram.java #HelloSpring.java #Bean.xml 当我把 我的输出是: 当我把 我的输出是: 方法是用作用域bean 调用的,但不能 在以下方面为我提供帮助, 这样对吗?如果是这样,可能是什么原因? 我也有一些疑问, 之间的区别或关系是什么 问题答案: 用singleton范围

  • 有人能解释这两个SpringBean作用域之间的区别吗?我熟悉单例模式。 这是唯一的区别吗?使用application scope,您可以在Spring容器中拥有一个beans列表。 此外,您是否能够在一个Spring容器中运行多个Web服务器?如果是,那将是使用应用程序范围而不是单例范围的原因,因为否则bean将在两个服务器上共享。

  • beanA实例与预期的一样,具有相同的哈希。但是,为什么在这种情况下,尽管beanB哈希值不同,但一个bean的两个实例之间的equals和==仍然返回true?

  • 本文向大家介绍JS 作用域与作用域链详解,包括了JS 作用域与作用域链详解的使用技巧和注意事项,需要的朋友参考一下 (1)作用域 一个变量的作用域(scope)是程序源代码中定义的这个变量的区域。 1. 在JS中使用的是词法作用域(lexical scope) 不在任何函数内声明的变量(函数内省略var的也算全局)称作全局变量(global scope) 在函数内声明的变量具有函数作用域(func

  • 本文向大家介绍JavaScript进阶(二)词法作用域与作用域链实例分析,包括了JavaScript进阶(二)词法作用域与作用域链实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript词法作用域与作用域链。分享给大家供大家参考,具体如下: 一、作用域 域表示的就是范围,即作用域,就是一个名字在什么地方可以使用,什么时候不能使用。想了解更多关于作用域的问题推荐阅读《你不