Spring的bean是线程安全的么

124 阅读1分钟

如果哪个人问我这个问题,我真的会怼他的,拒绝回答...会有这种问题的伙伴只限于2年的开发经验,超过两年了,你就要注意了。

xdm,为啥我不回答,因为他不知所云哈,bean是否线程安全跟Spring有必然联系么,必然没有

今天还真的有个伙伴问我了,所以温故而知新,来解答一下这个问题,从几个方面来回答,来思考

  • Spring是啥
  • bean是啥
  • 咋样才会有线程安全的问题
  1. Spring是啥
    Spring是一个容器,用来管理各种bean的,线程的安全问题肯定取决于bean本身
  1. bean是啥
    被Spring容器管理的对象称为bean,bean是个对象,但对象不一定是个bean
  1. 咋样才会有线程的安全问题
    对象出现安全问题,是因为多个线程同时访问对象的共享资源出现的并发问题
  1. 回答问题
    了解了以上问题,就会回答这个问题了,不一定,如果bean是原型的,每次getBean()都会出现一
    个新的对象,自然而然不存在线程安全,如果单例的bean不存在共享资源也是线程安全的,如果单例
    bean的共享资源不是线程安全的,就会出现线程安全问题
  1. 写在最后

我画了一个脑图,大家可以参考一下标准答案

image.png