创建A,调用构造方法,完成构造,进行属性赋值注入,发现依赖B,去实例化B。
创建B,调用构造方法,完成构造,进行属性赋值注入,发现依赖C,去实例化C。
创建C,调用构造方法,完成构造,进行属性赋值注入,发现依赖A。 这个时候就是解决循环依赖的关键了,因为A已经通过构造方法已经构造完成了,也就是说已经将Bean的在堆中分配好了内存,这样即使A再填充属性值也不会更改内存地址了,所以此时可以提前拿出来A的引用,来完成C的实例。
原创 | 2022-12-05 12:49:22 |浏览:1.6万
创建A,调用构造方法,完成构造,进行属性赋值注入,发现依赖B,去实例化B。
创建B,调用构造方法,完成构造,进行属性赋值注入,发现依赖C,去实例化C。
创建C,调用构造方法,完成构造,进行属性赋值注入,发现依赖A。 这个时候就是解决循环依赖的关键了,因为A已经通过构造方法已经构造完成了,也就是说已经将Bean的在堆中分配好了内存,这样即使A再填充属性值也不会更改内存地址了,所以此时可以提前拿出来A的引用,来完成C的实例。
Copyright 2005-2020 www.kxting.com 版权所有 | 湘ICP备2023022655号
声明: 本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:47085,1089@qq.com