【Spring】循环依赖的问题

环境是spring4.3.9
ssm项目

我发现项目中serverA和serverB
他们之间互相用了注解@Resource有注入

但是为什么没有出现循环依赖的报错呢,一直很正常的运行
就是serverA里有serverB,然后serverB里也有serverA,但就是没报错过

然后我今天在serverA的实现类里用了一个注解@Async,然后启动的时候才爆出了引用依赖的错误,删掉这个注解又正常了,我现在是百脸懵逼,求解

 Error creating bean with name 'doServiceImpl': Bean with name 'doServiceImpl' has been injected into other beans [soPackageServiceImpl] in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.
0

1个回答

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring循环依赖问题
什么是循环依赖 循环依赖就是循环引用,就是两个或多个bean之间相互持有对象,比如A引用B,B引用C,C引用A,他们最终反映为一个环,如下类图所示:   spring如何解决循环依赖 spring容器的循环依赖分为两类:一类是构造器循环依赖,另一类是setter循环依赖。 (1)构造器循环依赖 构造函数构成的循环依赖是无法解决的,只能抛出BeanCurrentlyInCreatio...
spring的依赖循环问题
什么是循环依赖? 循环依赖很好理解,就是说A中注入了B,B中又注入了A,你中有我,我中有你的感觉;   接下来我们先来看看spring中bean的生命周期简述: A)通过构造方法初始化对象  B)注入属性 (且把实现了aware一系列接口的过程也放在这个阶段,因为实现了接口也是注入属性--Name,beanFactory、Applicationcontext  ) C)后处理器 D)...
spring 循环依赖问题
今天碰到一个问题,项目启动,初始化bean的时候,报下面的错: Bean with name ‘*********’ has been injected into other beans [******, **********, **********, **********] in its raw version as part of a circular reference, 网上搜了...
spring的循环依赖问题
引言:循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错。下面说一下Spring是如果解决循环依赖的。 第一种:构造器参数循环依赖 表示通过构造器注入构成的循环依赖,此依赖是无法解决的,只能抛出BeanCurrentlyIn CreationException异常表示循环依赖。 如在创建TestA类时,构...
Spring的循环依赖问题
spring容器循环依赖包括构造器循环依赖和setter循环依赖,那Spring容器如何解决循环依赖呢?首先让我们来定义循环引用类: 在Spring中将循环依赖的处理分成了3种情况: 构造器循环依赖 setter循环依赖 prototype范围的依赖处理 构造器循环依赖 通过构造器注入构成的循环依赖,此依赖是无法解决的,只能抛出BeanCurrent...
Spring中的循环依赖问题
最近在研究Spring IOC容器,遇到了对象的循环依赖问题,通过看源码才明白Spring是如何优雅的解决单例循环依赖问题。Spring将对象依赖分成属性依赖和构造依赖,构造依赖问题无法解决,只能抛出BeanCurrentlyInCreationException异常,在解决属性依赖问题,Spring采用的是提前暴露对象的方法。 构造依赖问题: 首先上代码: 有一个类Officepublic
spring解决循环依赖问题
spring解决循环依赖问题 文章目录spring解决循环依赖问题循环依赖概念Spring 出现循环依赖需要满足三个条件:Spring 创建对象分为三个过程:案例 循环依赖概念 spring循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图: 依赖依赖依赖ABC Spring 出现循环依赖需要满足三个条件: 1、s...
Spring - Bean 循环依赖问题
一、准备工作 下面新建一个Maven工程的Web项目,其中有两个实体类分别如下:package com.egov.pojo;/** * Created by wuguoping on 2017/9/9 Desc: */ public class ClassA { private ClassB classB; public void setClassB(ClassB classB)
Spring 处理循环依赖问题
更多资料可以关注私信我“资料”两字哦、 Spring 循环依赖需要满足三个条件: 1、setter 注入(构造器注入不能循环依赖) 2、singleton bean(非单例 bean 不支持) 3、AbstractAutowireCapableBeanFactory#allowCircularReferences 这个 boolean 属性控制是否可以循环,默认为 true  具体测试代码如下...
Spring解决循环依赖问题
2019独角兽企业重金招聘Python工程师标准>>> ...
Spring源码分析:循环依赖
前言 个人扯淡博客:http://blog.ztgreat.cn 前面分析了Spring BeanFactory,接着分析了Spring IOC的初始化过程,对整个流程有了一定的认识,当然没有面面俱到,当然也不可能,我自己本身定位就是把握主要脉络,前面遗留了一个问题,就是在Spring IOC最后初始化单例bean的时候,针对循环依赖的处理问题,学习一下思想,处理方式,这是这篇文章的主要目的。...
Spring中的循环依赖
循环依赖 在使用Spring时,如果主要采用基于构造器的依赖注入方式,则可能会遇到循环依赖的情况,简而言之就是Bean A的构造器依赖于Bean B,Bean B的构造器又依赖于Bean A。在这种情况下Spring会在编译时抛出BeanCurrentlyInCreationException。 Class A @Component public class ClassA { private Cl...
Spring循环依赖
1.循环引用,也可以叫做循环依赖,就是A类依赖了B类,B类又依赖A类,比如下面这种情况: 2. 在开始介绍各种情况之前,首先要了解以下三个知识点: Spring中依赖注入的方式有两种,属性注入与构造器注入。上面的代码中,类A就是通过属性注入的方式注入了B,类B是通过构造器注入的方式注入了A。 Spring中的bean根据作用域的不同,可以大体分为两类,singleton和prototy...
spring循环依赖
AbstractAutowireCapableBeanFactory 方法中创建bean doCreateBean 实现如下: protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final Object[] args) { // Instantiate the bean.
Spring IOC 循环依赖
一、什么是循环依赖?循环依赖就是多个对相互引用。比如说 class A 包含class B的引用,class B 里面又包含 class 的引用。class A { B b;}class B { A a;}二、循环依赖的类别1、构造器循环依赖(此依赖问题无法解决,会发生栈溢出)2、set循环依赖(只能解决单例循环依赖问题)三、set循环依赖的解决办法class A { B b; public B ...
Spring IoC、循环依赖
1.什么是IoC和DI? IOC(控制反转):   没有引入IoC容器之前,对象A依赖对象B,那么A对象在实例化或者运行到某一点的时候,自己必须主动创建对象B或者使用已经创建好的对象B,其中不管是创建还是使用已创建的对象B,控制权都在自己手上。   引入了Ioc容器之后,对象A和对象B之间失去了直接联系,所以,当对象A实例化和运行时,如果需要对象B的话,IoC容器会主动创建一个对象B注入到对象A...
spring之循环依赖
1.什么是循环依赖? 循环依赖:指创建对象的时候,对象之间的循环引用。比如三个类A,B,C,创建A时要依赖B,创建B时要依赖C,创建C时要依赖A。 2.循环依赖的三个场景:构造器循环依赖、setter单例循环依赖、prototype循环依赖 3.解决方式: 构造器循环依赖: Spring容器会将每一个正在创建的Bean 标识符放在一个“当前创建Bean池(BeanCurrentlyInC...
JAVA,循环依赖,Spring
JAVA,循环依赖,Spring
Spring 循环依赖
在Spring注入的机制里,人们常提到的一个问题是循环依赖,那么什么是循环依赖,假设有两个bean,你中有我,我中有你,这样一来,在容器创建bean的时候是如何处理的呢,是鸡生蛋,还是蛋生鸡,这是个问题。 我们先来看两个小例子 A B类互相依赖,容器启动log如下 换个方式来玩一哈 这样容器启动时log有异常
Spring 循环依赖 图示
入口类: DefaultListableBeanFactory 继承 #AbstractAutowireCapableBeanFactory 继承 #AbstractBeanFactory 1、getBean 流程(单例) 2、简化版 3、demo A B实例循环依赖创建 流程 ...
Spring循环依赖问题修复
拆分的时候,把错误都处理完后,准备把工程起起来,发现弹簧的循环依赖问题。具体问题如下 Bean with name 'userManager' has been injected into other beans [daoAuthenticationProvider] in its raw version as part of a circular reference, but has eve...
spring中循环依赖
前提条件 类A文件 public class CircleA { private CircleB circleB; public void setCircleB(CircleB circleB){ this.circleB = circleB; } public void a() { circleB.b(); } } 类B文件 pu...
Spring之循环依赖与解决方案
GitHub:https://github.com/JDawnF/learning_note 目录 1. 什么是循环依赖 2. 解决循环依赖 2.1 getSingleton 2.2 addSingletonFactory(二级缓存出处) 2.3 addSingleton(一级缓存出处) 3. 小结 1. 什么是循环依赖 循环依赖,其实就是循环引用,就是两个或者两个以上的 bea...
spring 源码-循环依赖
可能有点标题党,现在并不涉及循环依赖的源码,准备之后写。 在现实的需求中,或许我们会碰到这种需求,我中有你,你中有我。 这特么设么需求,用类A、B来表示,就是类A中有个属性B,类B中有个属性A。 那么如果把A、B放入到spring容器之中呢。。。之前碰到一次有人写了这种循环依赖的代码,但是怎么说从可读性上、理解性上都不是很好,我看了之后,抽取了一些方法逻辑,写成了三个类。因为在之前去掉了一些不
spring处理循环依赖
看spring源代码时,发一段代码如下,不明白什么意思。百度一下,才有点弄明白,记录一下,。 protected Object getSingleton(String beanName, boolean allowEarlyReference) { //先从缓存中获取实例 Object singletonObject = this.singletonObjects.get(beanNam
spring 循环依赖和生命周期
本文主要说的是Spring是如何解决bean循环依赖的问题,循环依赖和生命周期交织在一起的。 生命周期图: Spring容器初始化时会读取 我们配置bean的信息。然后再一个一个的创建: DefaultListableBeanFactory.class: public void preInstantiateSingletons() throws BeansExc...
spring的循环依赖
问题记录: 1 spring的循环依赖 三级缓存: /** Cache of singleton objects: bean name --> bean instance */ private final Map<String, Object> singletonObjects = new ConcurrentHashMap<String, Object&gt...
Spring 中的循环依赖
A 实例依赖 B 实例,B 实例依赖 C 实例,C 实例依赖 A 实例,依赖关系形成一个环,就称为循环依赖。 protoType 作用域的循环依赖:循环依赖是对于单例来说的,spring 容器对于 protoType 作用域的 bean 不进行缓存,因此无法完成依赖注入。 构造器循环依赖(单例):始终都在等待依赖创建成功,陷于死循环,无法解决。 setter 循环依赖(单例):在 bean 实例创...
Spring的循环依赖
在Teradata的一次Java面试,说到了一个spring的循环依赖的问题: A依赖B,B依赖C,C依赖A,这个会不会有问题。 按照面试人的说法,创建A之前创建B,创建B之前创建C,创建C正好创建A, 不屑一顾的说,这没问题啊,完全可以建立起来。 [code="java"] // Fail if we're already creating this bean instanc...
Spring之循环依赖
Spring在Bean的实例化过程中,提供了对循环依赖的解决方案,但是这部分代码非常的生涩难懂,今天,我们就从一个Spring的源码来看看这个循环依赖到底是何方神圣! 首先Spring中的循环依赖到底是什么呢? 循环依赖就是循环引用,就是在类A中引用了类B,而类B中引用了类C,而类C中又引用了类A,如图: 图一 在图一中,我们可以看到A中存在属性B,B中存在属性C,而C中有又存在属...
Spring 源码阅读-循环依赖
2019独角兽企业重金招聘Python工程师标准>>> ...
Spring循环依赖--源码分析
Spring的循环依赖对我来说一直是一个迷,在通过长时间的学习,终于解开了这一面纱,以下就是我理解整个循环依赖的处理过程。我从Spring容器初始化开始说起,当然着重点主要在循环依赖的过程,通过博客可以让自己理解更加深刻,也希望对大家学习能有所帮助。整个过程这里总共分为11步: 1、Spring容器开始初始化,以AnnotationConfigApplicationContext为例,通过调用A...
Spring之循环依赖解决
为什么80%的码农都做不了架构师?>>> ...
spring 解决循环依赖
先上一个调用栈的图: 我的代码结构是: @Component public class UserServiceImpl { @Autowired private ITest test1; public String hello(){ test1.sayHello(); System.out.println("hello world"); return "hel...
spring循环依赖的解决
当A类中有B属性,B类中有A属性的时候,就会产生循环依赖。A在实例化的时候,引用了B,但是B么有实例化,所以就会先实例化B,这个时候发现B又引用了A,但是A还没有实例化,所以就造成了循环依赖。我们来看看spring是如何解决的 构造器循环依赖 代码 public class ClassA { private ClassB B; public ClassA(ClassB b) {...
相关热词 c#串口测试应用程序 c# 匹配 正则表达式 c#防止窗体重绘 c#读写txt文件 c#挖地雷源代码 c#弹框选项 c# 移除 队列 c# 密码写入配置文件 c# 获取可用内存大小 c# 嵌入excel编辑