在阅读Spring Framework的文档时,我遇到了以下内容:
Spring的单例bean概念与Singleton不同 四人帮(GoF)模式书中定义的模式。 GoF Singleton硬编码对象的范围,使得只有一个 每个ClassLoader 创建一个特定类的实例 。范围 Spring单例的最好描述为每个容器和每个 豆。
我不明白为什么每个ClassLoader?为什么不对整个应用程序或在上下文中它们被认为是相同的东西?
答案 0 :(得分:2)
因为在传统的单例中,你在Singleton类中有一个静态变量来保存单个实例。但是,由于您可以使用多个order
加载相同的类,因此它们将拥有自己的静态变量,并可以自由创建自己的实例。
在大多数情况下,这不是问题。