Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringBean单例和单例模式_Java_Spring - Fatal编程技术网

Java SpringBean单例和单例模式

Java SpringBean单例和单例模式,java,spring,Java,Spring,我知道Spring可以创建单例bean。这是否意味着我们不需要使用“单例模式”来自己创建JavaBean?spring singleton和singleton模式之间有什么区别?spring singleton是唯一的ApplicationContext(每个spring容器)实例。这意味着,如果创建一个新的ApplicationContext,那么即使是单实例,也会得到一个新的bean实例 然而,最初的Java单例意味着每个类加载器有一个实例。这意味着对于特定的类加载器,单例实例保持不变。在大

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

spring singleton是唯一的
ApplicationContext
(每个spring容器)实例。这意味着,如果创建一个新的
ApplicationContext
,那么即使是单实例,也会得到一个新的bean实例

然而,最初的Java单例意味着每个
类加载器有一个实例。这意味着对于特定的类加载器,单例实例保持不变。在大多数情况下,这很好,但是假设您需要一个真正的单实例,每个JVM一个实例,那么还有一些额外的工作要做。看看这个例子

对您的问题的回答是,如果您在应用程序中实例化一个spring容器,那么spring singleton bean可以被视为一个singleton,然而这仅适用于spring组件。这意味着这个实例不能被任何不是Springbean的类访问


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

spring singleton是唯一的
ApplicationContext
(每个spring容器)实例。这意味着,如果创建一个新的
ApplicationContext
,那么即使是单实例,也会得到一个新的bean实例

然而,最初的Java单例意味着每个
类加载器有一个实例。这意味着对于特定的类加载器,单例实例保持不变。在大多数情况下,这很好,但是假设您需要一个真正的单实例,每个JVM一个实例,那么还有一些额外的工作要做。看看这个例子

对您的问题的回答是,如果您在应用程序中实例化一个spring容器,那么spring singleton bean可以被视为一个singleton,然而这仅适用于spring组件。这意味着这个实例不能被任何不是Springbean的类访问


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

除非这个问题有值得回答的独特之处,否则最好将其标记为重复。meta上已经讨论了一些很好的理由:除非这个问题有值得回答的独特之处,否则最好标记为重复。meta上已经讨论了一些很好的原因: