Spring的循环依赖
在Teradata的一次Java面试,说到了一个spring的循环依赖的问题:
A依赖B,B依赖C,C依赖A,这个会不会有问题。
按照面试人的说法,创建A之前创建B,创建B之前创建C,创建C正好创建A,
不屑一顾的说,这没问题啊,完全可以建立起来。
这段代码是spring创建bean的一个过程,从上面可以看出创建bean之前,他的依赖一定是创建好的,而不是先创建bean再创建依赖。
第一句代码,明确指出了,是否是循环依赖,抛出异常。
singleton范围的bean的循环引用,使用了提前实例化的方式。
源码注释如下:
Eagerly cache singletons to be able to resolve circular references
我的异常网推荐解决方案:org.springframework.beans.factory.BeanCreationException:,http://www.myexception.cn/j2ee/10759.html