[跟我学spring学习笔记][DI循环依赖]
2016-04-13 23:59
621 查看
循环依赖
什么是循环依赖?
循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方.Spring容器循环依赖包括构造器循环依赖和setter循环依赖,那Spring容器如何解决循环依赖呢?
先定义循环类
CircleA->CircleB->CircleC->CircleASpring 如何解决循环依赖
一.构造器循环依赖
表示通过构造器注入构成的循环依赖,此依赖是无法解决的,只能抛出BeanCurrentlyInCreationException异常表示循环依赖。
第一次接受的异常是
BeanCreationException
需要三次getCause才是
BeanCurrentlyInCreationException
以下是测试代码,可以好好看看怎么写测试
public class HelloTest { @Test(expected = BeanCurrentlyInCreationException.class) public void testCircleByConstructor() throws Throwable { try { new ClassPathXmlApplicationContext("chapter2/instantiatingBean.xml"); } catch (Exception e) { //因为要在创建circle3时抛出; Throwable e1 = e.getCause().getCause().getCause(); throw e1; } } }
二、setter循环依赖
后面的没必要看了…别出循环依赖局OK
相关文章推荐
- [跟我学spring学习笔记][IoC]
- [跟我学spring学习笔记][IoC]
- 20145219 《Java程序设计》实验二 Java面向对象程序设计实验报告
- [跟我学Spring学习笔记][DI配置与使用]
- [跟我学Spring学习笔记][DI配置与使用]
- [Spring入门学习笔记][静态资源]
- 用struts1进行文件的下载
- JAVA设 4000 计模式
- [Spring入门学习笔记][静态资源]
- [Spring入门学习笔记][创建网站URL]
- [Spring入门学习笔记][Spring的AOP原理]
- [Spring入门学习笔记][Spring的AOP原理]
- [Spring入门学习笔记][创建网站URL]
- [spring入门学习笔记][spring的IoC原理]
- [spring入门学习笔记][spring的IoC原理]
- 20145227《Java程序设计》第2次实验报告
- MyEclipse快捷键大全
- 二分搜索的java源码实践
- spring 与 jsf整合
- 14_java中的设计模式