spring创建bean时为什么要保证线程的安全

spring创建bean的时候采用了多种手段来保证线程的安全,那么为什么要保证线程的
安全?spring创建bean的时候难道是多线程创建的吗?

防止bean中的属性注入出错

因为首先 bean 之间存在大量的复杂的依赖关系,即使使用多线程初始化,也会需要进行大量的同步;其次还要判断 bean 之间是否存在循环依赖,检测循环依赖只能是单线程的。所以目前 Spring 的初始化过程没有使用并发的方式去做。具体可以参考这里: https://jira.spring.io/browse...

如线程不安全,多线程创建Bean时,给bean赋的值会变得错乱。所以多线程方法不能共用bean,使用时必须new