解决spring循环依赖的问题:has been injected into other beans
2018-02-26 10:07
1336 查看
首先说一下什么是依赖循环,比如:我现在有一个ServiceA需要调用ServiceB的方法,那么ServiceA就依赖于ServiceB,那在ServiceB中再调用ServiceA的方法,就形成了循环依赖。Spring在初始化bean的时候就不知道先初始化哪个bean就会报错。[java] view plain copypublic class ClassA {@Autowired ClassB classB;}
[java] view plain copypublic class ClassB { @Autowired ClassA classA ;}
当然, 最好的解决办法是进行解耦。 但,如果改动比较大,可以在你的配置文件中,在互相依赖的两个bean的任意一个加上lazy-init属性 或者在你注意bean 的时候,在互相依赖的两个bean上加上@Lazy注解也可以。@Autowired @Lazy
[java] view plain copypublic class ClassB { @Autowired ClassA classA ;}
当然, 最好的解决办法是进行解耦。 但,如果改动比较大,可以在你的配置文件中,在互相依赖的两个bean的任意一个加上lazy-init属性 或者在你注意bean 的时候,在互相依赖的两个bean上加上@Lazy注解也可以。@Autowired @Lazy
private ClassA classA;
@Autowired @Lazy
private ClassB classB;
相关文章推荐
- 解决spring循环依赖的问题:has been injected into other beans
- spring 源码探索--单例bean解决循环依赖问题
- Spring上传文件java.lang.IllegalStateException: File has been moved - cannot be read again问题分析及解决
- Spring源码学习--Bean对象循环依赖问题解决(四)
- Spring中的循环依赖问题介绍及解决方法
- Spring中的循环依赖问题介绍及解决方法
- 解决 Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects
- SPRING循环依赖(circular reference)的解决方法
- getOutputStream() has already been called for this response问题的解决
- 解决Attribute "rippleColor" has already been defined的问题
- 关于spring 注入中循环 ,环形依赖问题的明确
- Cannot forward after response has beencommitted问题分析及解决
- 解决maven打包编译出现File encoding has not been set问题
- 解决Maven项目相互依赖/循环依赖/双向依赖的问题
- SPRING循环依赖(circular reference)的解决方法
- because it is included into a circular dependency循环依赖的解决办法
- SPRING循环依赖(circular reference)的解决方法 [转贴]
- 关于SpringMVC中org.springframework.beans.factory.BeanCreationException: Could not autowire field:的问题的解决
- Spring Tool Suite无法现在aspectjweaver.jar这个Maven依赖问题解决
- 智能指针weak_ptr解决循环依赖问题