成都网站建设设计

将想法与焦点和您一起共享

浅谈Spring解决循环依赖的三种方式-创新互联

引言:循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错。下面说一下Spring是如果解决循环依赖的。

盱眙网站建设公司创新互联,盱眙网站设计制作,有大型网站制作公司丰富经验。已为盱眙上1000+提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的盱眙做网站的公司定做!

第一种:构造器参数循环依赖

表示通过构造器注入构成的循环依赖,此依赖是无法解决的,只能抛出BeanCurrentlyIn CreationException异常表示循环依赖。

如在创建TestA类时,构造器需要TestB类,那将去创建TestB,在创建TestB类时又发现需要TestC类,则又去创建TestC,最终在创建TestC时发现又需要TestA,从而形成一个环,没办法创建。

Spring容器会将每一个正在创建的Bean 标识符放在一个“当前创建Bean池”中,Bean标识符在创建过程中将一直保持
在这个池中,因此如果在创建Bean过程中发现自己已经在“当前创建Bean池”里时将抛出
BeanCurrentlyInCreationException异常表示循环依赖;而对于创建完毕的Bean将从“当前创建Bean池”中清除掉。

首先我们先初始化三个Bean。

public class StudentA { 
 
 private StudentB studentB ; 
 
 public void setStudentB(StudentB studentB) { 
 this.studentB = studentB; 
 } 
 
 public StudentA() { 
 } 
 
 public StudentA(StudentB studentB) { 
 this.studentB = studentB; 
 } 
} 


标题名称:浅谈Spring解决循环依赖的三种方式-创新互联
文章来源:http://chengdu.cdxwcx.cn/article/dsecsh.html