Spring三级缓存和循环依赖

发布时间 2023-12-22 17:07:10作者: java奇才

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。