学习地址:https://www.bilibili.com/video/BV1ET4y1N7Sp?p=2
1、什么是Spring循环依赖?
2、循环依赖怎么解决?
3、Spring中为什么要使用三级缓存来解决循环依赖?二级缓存能不能解决循环依赖问题?
什么是Spring循环依赖
首先了解Bean的创建与管理过程:
结论:获取Bean的时候先从单例池中获取,如果没有则创建并添加到单例池。
获取Bean
找bean工厂,调用两次单例池。第一次通过beanName获取,如果单例池中并没有这个beanName的对象,则第二次会使用工厂模式创建并且添加到单例池中然后返回需要的对象。
加锁是因为在并发的情况下,防止重复创建Bean。
创建Bean
通过getBean(" ")