怎样打开网站制作,网站seo如何做好优化,轻网站怎么建立,图书馆网站建设背景目录
1.循环依赖的概念
2.解决循环依赖的方法
1.构造器方法注入#xff1a;
2.Lazy注解
3.DependsOn注解 1.循环依赖的概念 两个或多个bean之间互相依赖#xff0c;形成循环#xff0c;此时#xff0c;Spring容器无法确定先实例化哪个bean#xff0c;导致循环依赖的…目录
1.循环依赖的概念
2.解决循环依赖的方法
1.构造器方法注入
2.Lazy注解
3.DependsOn注解 1.循环依赖的概念 两个或多个bean之间互相依赖形成循环此时Spring容器无法确定先实例化哪个bean导致循环依赖的问题。
代码示例
Service
public class A{private B b;Autowiredpublic A(B b){this.b b;}}Service
public class B{private A a;Autowiredpublic B(A a){this.a a;}}
可以看到代码中A的对象创建需要先实例化B的对象而B的对象也需要先实例化A此时形成了循环依赖。 2.解决循环依赖的方法
1.构造器方法注入
在构造器中注入解决循环依赖问题
public class Main {public static void main(String[] args) {ClassB classB new ClassB(null);ClassA classA new ClassA(classB);classB.setClassA(classA);}
}
2.Lazy注解
Lazy注解具有延迟加载的功能能够在需要该bean时再进行实例化
Service
Lazy
public class A{private B b;Autowiredpublic A(B b){this.b b;}}Service
Lazy
public class B{private A a;Autowiredpublic B(A a){this.a a;}} 3.DependsOn注解
DependsOn注解能够指定依赖项的加载顺序从而避免循环依赖问题
如下代码中DependsOn(B)指定了A依赖于B在实例化A之前必须先实例化B避免了循环依赖问题
Service
DependsOn(B)
public class A{private B b;Autowiredpublic A(B b){this.b b;}}Service
Lazy
public class B{private A a;Autowiredpublic B(A a){this.a a;}}