2、在Spring中,对象的实例化是通过反射实现的,而对象的属性则是在对象实例化之后注入的,有setter注入、构造器注入和注解注入三种。前两种注入方式可以实现循环依赖。
3、Spring实例化bean用的是ApplicationContext.getBean()方法。
4、Spring是通过递归的方式获取目标bean及其所依赖的bean。
5、循环依赖就说明程序设计有问题,这就是Springboot推荐使用构造注入的原因,循环依赖直接报错无法启动,而setter注入会成功。
6、如何解决属性的循环依赖?Spring主要的思路就是依据三级缓存。
但Spring无法解决构造器的循环依赖,也不需要解决,因为它会直接抛异常。
内容来源公众号:小谢backup
全部评论
(0) 回帖