gpt4 book ai didi

java - Spring bean 单例和单例模式

转载 作者:行者123 更新时间:2023-12-02 02:28:14 24 4
gpt4 key购买 nike

我知道Spring可以创建单例bean。这是否意味着我们不需要使用“单例模式”自己创建一个java bean? Spring单例和单例模式有什么区别?

最佳答案

Spring 单例是唯一的ApplicationContext(每个 Spring 容器)实例。这意味着如果您创建一个新的 ApplicationContext 那么您将获得该 bean 的一个新实例,即使它是单例的。

然而,原始的 Java 单例意味着每个 Classloader 一个实例。这意味着单例实例对于特定的类加载器保持相同。在大多数情况下,这没问题,但是假设如果您需要一个真正的单例、每个 JVM 的单个实例,那么就需要做一些额外的工作。看这个例子https://stackoverflow.com/a/47445573/5343269

你的问题的答案是,如果你在应用程序中实例化单个 spring 容器,那么 spring singleton bean 可以被视为单例,但这仅适用于 Spring 组件。这意味着该实例不能被任何非 Spring bean 的类访问。

为了安全起见,不要依赖 spring 单例并创建自己的单例类。

关于java - Spring bean 单例和单例模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47522477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com