zoukankan      html  css  js  c++  java
  • [跟我学spring学习笔记][DI循环依赖]

    循环依赖

    什么是循环依赖?

    循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方.

    Spring容器循环依赖包括构造器循环依赖和setter循环依赖,那Spring容器如何解决循环依赖呢?

    先定义循环类

    CircleA->CircleB->CircleC->CircleA

    Spring 如何解决循环依赖

    一.构造器循环依赖

    表示通过构造器注入构成的循环依赖,此依赖是无法解决的,只能抛出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

  • 相关阅读:
    Nbear讲解 之核心类CodeGenerator
    计算字符串显示的像素
    C# 加密算法[汇总]
    索引器的本质
    Excel[.xls|.xlsx|.csv] 导入 导出
    Spring.Net Ioc 实例
    反射中 BindingFlags标识
    C# 图片操作 常用方法 总结
    iTextSharp 生成pdf Form 实例
    玩转 Route
  • 原文地址:https://www.cnblogs.com/zy691357966/p/5480245.html
Copyright © 2011-2022 走看看