spring为什么默认单例模式
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
spring为什么默认单例模式
单例bean的优势
由于不会每次都新创建新对象所以有⼀下⼏个性能上的优势。
1、减少了新⽣成实例的消耗
新⽣成实例消耗包括两⽅⾯,第⼀,spring会通过反射或者cglib来⽣成bean实例这都是耗性能的操作,其次给也会涉及复杂算法。
2、减少jvm垃圾回收
由于不会给每个请求都新⽣成bean实例,所以⾃然回收的对象少了。
3、可以快速获取到bean
因为单例的获取bean操作除了第⼀次⽣成之外其余的都是从缓存⾥获取的所以很快。
单例bean的劣势
单例的bean⼀个很⼤的劣势就是他不能做到线程安全!由于所有请求都共享⼀个bean实例,所以这个bean要是有状态的⼀个bean的话可能在并发场景下出现问题,⽽原型的bean则不会有这样问题(但也有例外,⽐如他被单例bean依赖),因为给每个请求都新创建实例。