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

spring singleton作用域——每个容器每个bean

漆雕皓轩
2023-03-14

我问这个问题是关于我的问题:

spring单例范围

Spring单例在参考手册中根据每个豆子的容器进行定义

每个容器意味着如果我们喜欢:

ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml")
MyBean myobj=(MyBean)context.getBean("myBean"); //myBean is of singleton scope.
MyBean myobj1=(MyBean)context.getBean("myBean");

Beans.xml:

<bean id="myBean" class="MyBean"/>

然后myobj==myob1将出来true.Means都指向同一个实例。

对于每个豆子的短语部分,每个容器每个豆子我有点困惑。我在每个豆子的跟随是正确的:

如果我们喜欢

ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml")
MyBean myobj=(MyBean)context.getBean("myBean"); 
MyBean myobj1=(MyBean)context.getBean("mySecondBean");

Beans.xml:

<bean id="myBean" class="MyBean"/>
<bean id="mySecondBean" class="MyBean"/>

那么myobj==myob1将显示为false。意味着它们是两个不同的实例?

共有3个答案

公西翊歌
2023-03-14

是的,你说得对。测试它会告诉你。

关项明
2023-03-14

myBean 是每次调用豆子意义上的Spring单例,getBean(“myBean”)将返回相同的实例。而我的第二行为一个不同的ID是另一个Spring的单身人士。您可以在同一应用程序上下文中拥有相同类的不同单例 Bean。

盖晋
2023-03-14

这是正确的。

如果有帮助的话,您还可以将SpringBean视为使用构造函数在Java代码中手动创建的实例

通过在Spring XML文件中定义bean,该bean(实例)将注册到Spring的应用程序上下文中,然后该实例可以传递到代码的其他区域。

通过创建一个新bean,您可以有效地创建一个新实例。因此,您可能可以创建任意数量的相同类的bean(实例)

 类似资料:
  • 问题内容: 我必须对一个大型Java项目做一个一般性的说明,但是我对它的了解很少,我想知道是否有确定以下内容的准则: 每个包有多少个类可以被认为是正确的,低或高的(这个项目每个包有3.89个类,对我来说似乎太小了), 每个类有多少种方法?(该项目每个类有6.54个方法… 每个方法的行数?(此项目每种方法大约有7行(对我来说似乎不错,也许有点低)) 我应该指出,这个问题仅涉及体积。我有很多来自质量工

  • 如果我创建 cronjob 以每 2:30 运行一次命令会运行吗?(这意味着,我的 cron 将在每小时 90 分钟后运行一次。 命令如:30*/2***/command/xxx= 请帮帮忙?

  • 问题内容: 我试过重新安装netbeans,试过重新安装java。我不确定发生了什么,但是我从每个类中都随机得到此异常,直到重新启动netbeans。有类似问题的人吗? 跑: 问题答案: 有时,NetBeans本地缓存目录会损坏(由于应用程序更早崩溃或发生其他/未定义的情况)。NetBeans开始表现异常。重新安装没有帮助,因为本地缓存目录并不总是被删除。 如果您100%确定您的应用程序没有路径问

  • 我可以让selenium webdriver“默认”等待它的每个操作执行吗?例如,设置任何“默认等待时间”,使其尝试每500毫秒点击每个元素10次?

  • 我写了一个Python程序,它确保它的线程在收到Unix SIGTERM信号时被优雅地停止。我知道docker停止向容器内的主进程发送SIGTERM请求,并在宽限期后发送SIGKILL。docker-comment down的留档声明它“停止容器”,但没有明确说明如何停止。我假设它在每个容器上调用?

  • 基于每个JVM的CPU核数创建线程与在多个JVM上运行的线程在CPU核数上创建线程数,条件是所有JVM运行在共享同一CPU的一个物理系统上有何不同?换句话说,一个并行运行8个线程的多线程Java程序vs在共享同一CPU的8个不同JVM上运行的同一多线程程序? 下面我给出了一些我发现的用线程实现并行处理的方法,但是我不能理解它们之间的本质区别? 方法一:线程周期性地查询数据库更改,并行地启动(长时间