A与B两个@Bean对象进行了循环引用。
Spring解决方案是提供了一个三级缓存。
首先,bean的创建有两步,第一步先创建这个类的一个对象,然后再进行属性的注入。
例如A类先初始化,先执行第一步,创建A对象,但是A对象此时还没有注入其它属性,所以就先把A对象存放到了一个缓存中。然后再去初始化B对象。
B对象用到了A对象,B对象就能够缓存中读取出A实例对象,这样就完成了B对象的创建。
最后把创建好的B对象再注入进A对象,这样就解决了循环依赖。

A与B两个@Bean对象进行了循环引用。
Spring解决方案是提供了一个三级缓存。
首先,bean的创建有两步,第一步先创建这个类的一个对象,然后再进行属性的注入。
例如A类先初始化,先执行第一步,创建A对象,但是A对象此时还没有注入其它属性,所以就先把A对象存放到了一个缓存中。然后再去初始化B对象。
B对象用到了A对象,B对象就能够缓存中读取出A实例对象,这样就完成了B对象的创建。
最后把创建好的B对象再注入进A对象,这样就解决了循环依赖。