单例bean和原型bean的区别?

warning: 这篇文章距离上次修改已过1500天,其中的内容可能已经有所变动。

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、缓存快速获取

有什么劣势那?
如果有状态在并发情况下会出现线程不安全。

版权声明 ▶ 本网站名称:我的学习笔记
▶ 本文链接:https://ooolo.net/article/55.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!!

none
最后修改于:2020年03月19日 10:26

添加新评论

icon_mrgreen.pngicon_neutral.pngicon_twisted.pngicon_arrow.pngicon_eek.pngicon_smile.pngicon_confused.pngicon_cool.pngicon_evil.pngicon_biggrin.pngicon_idea.pngicon_redface.pngicon_razz.pngicon_rolleyes.pngicon_wink.pngicon_cry.pngicon_surprised.pngicon_lol.pngicon_mad.pngicon_sad.pngicon_exclaim.pngicon_question.png