Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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单例设计模式_Java_Spring_Design Patterns - Fatal编程技术网

理解Java单例设计模式

理解Java单例设计模式,java,spring,design-patterns,Java,Spring,Design Patterns,在阅读Spring框架的文档时,我遇到了以下问题: Spring的单例bean概念不同于单例bean 在四人组(GoF)模式手册中定义的模式。戈夫 Singleton硬编码对象的范围,使得 每个类加载器创建一个特定类的实例。范围 最好按照容器和 豆子 我不明白为什么每个类加载器?为什么不;对于整个应用程序,或者在上下文中,它们被认为是相同的东西?因为在传统的singleton中,singleton类中有一个静态变量来保留单个实例。但是,由于可以使用多个类加载器加载同一个类,因此这些类加载器将有自

在阅读Spring框架的文档时,我遇到了以下问题:

Spring的单例bean概念不同于单例bean 在四人组(GoF)模式手册中定义的模式。戈夫 Singleton硬编码对象的范围,使得 每个类加载器创建一个特定类的实例。范围 最好按照容器和 豆子


我不明白为什么每个类加载器?为什么不;对于整个应用程序,或者在上下文中,它们被认为是相同的东西?

因为在传统的singleton中,singleton类中有一个静态变量来保留单个实例。但是,由于可以使用多个
类加载器
加载同一个类,因此这些类加载器将有自己的静态变量,并且可以自由创建自己的实例


在大多数情况下,这都不是问题。

如何可能由不同的类装入器两次装入同一个类?这有意义吗?可以创建一个
ClassLoader
(例如
URLClassLoader
),用它加载一个类,然后用另一个
ClassLoader
重复同样的操作。这很有道理,尽管这是一个相当广泛的主题。