1.单例bean指的是在多次请求时spring都只会实例化一个对象,并存在map中并放入缓存中,如果后续有请求会先从缓存中查找bean,如果找不到在实例化一个bean
2.原型bean指的是每次请求都实例化一个bean,没有缓存查找
![请输入图片描述][1]
![请输入图片描述][2]
[1]: https://mmbiz.qpic.cn/mmbiz_jpg/HrWw6ZuXCsjyicIv4OYzCbe0o95NDWa8hwjq7WbVYFfLUMHDaUJTGvVLBeK6lpsvWNto0H2kWxVKhHRQSia3iacIg/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1
[2]: https://mmbiz.qpic.cn/mmbiz_jpg/HrWw6ZuXCsjyicIv4OYzCbe0o95NDWa8hxsrhKaia2yjJ6VOS1tNI4KxzKQ4HHICPHcrf0iagAXKQ0ELsyUtZxx3A/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1
结论:
1、单例bean系统只会实例化一个bean,后续会进行缓存查找,查找不到在实例化一个新的,不会频繁创建对象
2、原型bean每次请求都会实例化一个新的bean,会频繁创建对象
**Spring 为啥把bean默认设计成单例?
为了提高性能
1、少创建实例
2、减少垃圾回收
3、缓存快速获取
有什么劣势那?
如果有状态在并发情况下会出现线程不安全。
本文由 admin 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。