研究一下Spring里面的源码
.循环依赖会出现什么问题 在阿粉的印象中,循环依赖最直接的问题就是会出现在对象的实例化上面,创建对象的时候,如果在Spring的配置中加入这种 A 依赖 B ,B 依赖 C,C 依赖 A 的话,那么最终创建 A 的实例对象的时候,会出现错误。 而如果这种循环调用的依赖不去终结掉他的话,那么就相当于一个死循环,就像阿粉前几天的在维护那个 “十六年”之前的项目的时候,各种内存溢出,表示内心很压抑呀。 而 Spring 中也将循环依赖的处理分成了不同的几种情况,阿粉带大家来看一下吧。 3.Spring循环依赖处理一 (构造器循环依赖) 构造器循环依赖的意思就是说,通过构造及注入构成的循环依赖,而这种依赖的话,是没有办法解决的,如果你敢强行依赖,不要意思,出现了你久违的异常 BeanCurrentlyInCreationException 出现这个异常的时候,就是表示循环依赖的问题。 相信大家出现异常的时候,在看不懂为什么的时候,第一时间,复制异常信息,放在百度,或者Google上面查询一下,BeanCurrentlyInCreationException 放在百度上,一目了然。
而在 Spring 的配置文件中,如果这么配置 A ,B ,C 的循环依赖的时候,在创建 A 的时候,发现,构造器需要 B 类,然后去创建 B ,而创建 B 的时候,发现又需要 C ,然后去创建 C ,创建的时候发现,竟然需要 A ,于是又掉头回去了,于是就形成了一个闭环,没有办法创建。 (编辑:淮南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |