2023年12月22日17:02:18
今天咪宝想买迪士尼娃娃,但是我买不起,还得加油。
Spring Bean注入方式有至少3种,
1. 构造方法注入
2.set方法注入(@Autowired)
3.prototype多例bean注入
构造器注入和prototype注入的循环依赖会直接报错,set方式注入循环依赖不会报错,spring使用3级缓存来解决。
核心思想在于提前暴露引用
就是 A依赖B,B依赖A时,在创建A Bean时,先把A类的ObjectFactory加到三级缓存中,发现A依赖B,就去创建B Bean,可以在三级缓存中找到A的ObjectFactory,然后实例化A。