Spring单例Bean与单例模式的区别在于他们关联的环境不一样,单例模式是指在一个jvm进程中仅有一个实例,而Spring单例是指一个Spring Bean容器(ApplicationContext)中仅有一个实例。
单例设计模式,在一个JVM进程中(理论上,一个运行的Java程序,就必定有自己独立的JVM)仅有一个实例,于是无论在程序的何处获取实例,始终都返回同一个对象,以Java内置的Runtime为例(现在枚举是单例模式的***实践),无论何时获取,下面的判断始终为真:
// 基于懒汉模式实现 // 在一个JVM实例中始终只有一个实例 Runtime.getRuntime() == Runtime.getRuntime()