InjectionMetadata.inject
resolveFieldValue解析去解析 对象的属性时
会自动去解析该属性是否是Bean依赖对象
DefaultListableBeanFactory.doResolveDependency会去调用DependencyDescriptor.resolveCandidate方法
而DependencyDescriptor.resolveCandidate方法就是回去调用BeanFactory.getBean方法
最终还是会调用AbstractBeanFactory.doGetBean方法,再回到AbstractAutowireCapableBeaFactory.doCreateBean,进行循环依赖注入。
循环依赖出现的问题
Spring通过三级缓存思想,对循环依赖出现的问题进行规避,到出现循环依赖问题时,提前中断初始化。