面试被问到Spring单例和平常说的单例的区别,该死的当时居然回答“不知道”,真白痴啊。
Spring中所谓的单例是指scope="singleton"的bean.
单例模式分为饿汉模式和懒汉模式:
| 饿汉模式 | spring
singleton的缺省是饿汉模式:启动容器时(即实例化容器时),为所有spring配置文件中定义的bean都生成一个实例 |
| 懒汉模式 | 在第一个请求时才生成一个实例,以后的请求都调用这个实例 spring singleton设置为懒汉模式:<beans default-lazy-init="true"> |
Spring中说的单例是相对于容器的,既在ApplicationContext中是单例的。而平常说的单例是相对于JVM的。另一个JVM可以有多个Spring容器,而且Spring中的单例也只是按bean的id来区分的。
本文解析了Spring框架中单例的概念及其与常规单例的区别。详细介绍了Spring中单例的实现方式,包括饿汉模式和懒汉模式,并解释了Spring单例的作用范围。
6132

被折叠的 条评论
为什么被折叠?



