美文网首页
解决Java循环依赖的问题

解决Java循环依赖的问题

作者: 03ngnntds | 来源:发表于2019-04-25 10:36 被阅读0次

最近看到一个问题:如果有两个类A和B,A类中有一个B的对象b,B类中有一个A的对象a,那么如何解决这两个类的相互依赖关系呢,几天就给大家说一下Java的循环依赖,raksmart服务器。

举个栗子1:

可以看到A类的构造方法中,new了一个B的对象,同时B类的构造方法中,new了一个A的对象。

如果此时我们运行该类的话,会报如下错误:

Exception in thread “main” java.lang.StackOverflowError

问题出现的原因在于A类和B类之间出现了循环依赖。

那么是否有方法可以解决这个问题呢?答案是:有

举个栗子2:

运行例子2,运行结果为:

BB

AA

AA

BB

在例子2中,testa和testb创建时调用的是类A和类B的默认构造方法,创建了类A和类B的实例。

然后将B的实例注入到类A中。testa.b = testb;

将A的实例注入到类B中。testb.a = testa;

testa.print()调用b.printA();b.printA()调用a.printA();a.printA()显示结果为AA

我们通过属性注入的方法,使得类A和类B不在出现例子1中的错误,并且使得两个相互依赖的类A和B可以调用相互依赖的方法。

事实上,spring中也是通过依赖注入的方法来解决类的相互依赖问题,到了这里大家应该明白了怎么解决这个循环依赖的问题,希望能够帮到大家

文章来源:搜索引擎大全http://www.iis7.com/b/ssyqdq/

相关文章

  • 解决Java循环依赖的问题

    最近看到一个问题:如果有两个类A和B,A类中有一个B的对象b,B类中有一个A的对象a,那么如何解决这两个类的相互依...

  • 2020年大厂面试题总结

    Java基础: Spring是如何解决循环依赖的问题的?比如A autowired B,Bautowired A,...

  • Spring循环依赖解析

    一、前置问题 Bean创建流程? 什么是循环依赖? 三级缓存可以解决哪些循环依赖场景? 二级缓存可以解决循环依赖吗...

  • 【JAVA】Spring解决循环依赖

    什么是循环依赖?在创建A的时候发现A中的属性需要B对象,那就先去创建B对象,又发现B中的属性需要A对象,那又去创建...

  • spring的三级缓存

    Spring的三级缓存解决循环依赖问题为了更好的理解循环依赖的问题,我们先一点一点手写循环依赖的代码模拟sprin...

  • 深入解析Spring容器解决循环依赖的原理

    最近看源码在研究类似如下配置的循环依赖是怎么解决的? 说明: 1、Spring容器解决循环依赖的问题配置类必须是单...

  • Spring 是如何解决循环依赖的问题的?

    解决方案 · 三级缓存,提前暴露对象,aop下面对循环依赖问题和解决方案进行分析 1 什么是循环依赖 在sprin...

  • Spring 是如何解决循环依赖的?

    Spring 是如何解决循环依赖的? 循环依赖: Spring 循环依赖有三种情况: 构造器的循环依赖,这种依赖 ...

  • Spring三级缓存

    Spring三级缓存是为了解决对象间的循环依赖问题。 A依赖B,B依赖A,这就是一个简单的循环依赖。 我们来先看看...

  • Spring核心之bean生命周期和三级缓存

    在使用spring框架的日常开发中,bean之间的循环依赖太频繁了,spring已经帮我们去解决循环依赖问题,对我...

网友评论

      本文标题:解决Java循环依赖的问题

      本文链接:https://www.haomeiwen.com/subject/amdagqtx.html