当Bean通过构造器注入相互依赖时,Spring无法解决这种循环依赖,因为在构造器调用之前,Bean尚未创建,无法注入。
通过字段(field)或setter方法注入依赖时,Spring可以通过三级缓存来解决循环依赖问题。
对于多例(prototype)作用域的Bean,Spring默认不会在启动时初始化,而是在使用时才初始化,因此可能不会立即出现循环依赖问题,但在现实使用中可能会遇到。
对A进行了AOP代理的话,此时getEarlyBeanReference将返回一个代理后的对象,而不是实例化阶段创建的对象
答:这个工厂的目的在于耽误对实例化阶段天生的对象的代理,只有真正发生循环依赖的时间,才去提前天生代理对象,否则只会创建一个工厂并将其放入到三级缓存中,但是不会去通过这个工厂去真正创建对象
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |