?很简单,就是A对象依赖了B对象,B对象依赖了A对象。a;这样,A,B就依赖上了。Spring中的循环依赖,得先明白Spring中Bean的生命周期。:在Spring中,Bean是如何生成的?被Spring管理的对象叫做Bean。BeanFactory中去获取B类所对应的单例bean。Bean放入了earlySingletonObjects。此时就会出现,对于A而言,它的Bean对象其实应该是AOP之后的代理对象,而B的a属性对应的并不是AOP之后的代理对象,这就产生了冲突。B依赖的A和最终的A不是同一个对象。>把代理对象放入singletonObjects单例池中。singletonFactories。就会构造一个ObjectFactory存入singletonFactories中。上文提到的AnnotationAwareAspectJAutoProxyCreator的父类就是AbstractAutoProxyCreator。那么getEarlyBeanReference方法到底在干什么?首先得到一个cachekey,cachekey就是beanName。AOP了,无需再次进行AOP。singletonFactories:缓存的是一个ObjectFactory,也就是一个Lambda表达式。