简介
循环依赖并不是一个好的设置,现实代码中很多离奇问题都由循环依赖导致(如死锁等),但是Spring是如何解决这部分问题的呢?答案是利用了Java的特性,同一个对象的应用指向的是同一个类,这样就能在类还在实例化阶段,还没对值进行赋值阶段就创建一个早期实例化对象,依赖对象去持有这个临时对象的引用,在依赖对象完全初始化后,由于持有对象是拥有者依赖对象的同一个引用,这样就能完成循环依赖的操作,现实中循环依赖并不是一个好的模式,我也会在现实中去避免去使用,就如之前介绍的六边形架构一样,好的架构要层次分明,循环依赖会导致系统的复杂化和系统架构的边界的不清晰,从而导致大泥球式的代码。