bboss aop 实践(4) 防止循环依赖注入

简介:  bboss项目下载列表 在sourceforge访问地址为:https://sourceforge.net/project/showfiles.php?group_id=238653    前两节介绍了bboss aop框架的两种依赖注入方式:属性依赖注入和构造函数依赖注入。

 bboss项目下载列表 在sourceforge访问地址为:
https://sourceforge.net/project/showfiles.php?group_id=238653 

 

前两节介绍了bboss aop框架的两种依赖注入方式:属性依赖注入和构造函数依赖注入。这一节介绍一下bboss aop框架防止循环依赖注入的功能。

在介绍防止循环依赖注入之前,我们首先介绍一下java组件中的属性循环引用的情况。所谓循环引用就是说组件之间相互引用,导致循环引用,例如:

对象A引用了对象B,对象B引用对象C,对象C引用了对象A,这样就形成了一种循环引用的场景。

 

 

使用bboss aop框架的依赖注入功能时,应用避免出现业务组件的循环依赖注入的情况,bboss aop能够有效的防止这种情况的出现,一旦开发人员配置了这种场景,应用程序通过com.chinacreator.spi.BaseSPIManagergetProvider方法获取业务组件的实例时将抛出异常:

throw new CurrentlyInCreationException("loop inject error the inject context path is [A>B>C>A]");

明确地提示出现了A>B>C>A的循环依赖注入。

这种情况的配置示例如下:

<?xml version="1.0" encoding='gb2312'?>

<manager-config>

    <manager id="a" singlable="true">

      

       <provider type="DB"

           class="com.chinacreator.spi.reference.A" />

       <reference fieldname="b" refid="b" />

      

      

    </manager>

   

   

    <manager id="b" singlable="false">

       <provider type="DB"

           class="com.chinacreator.spi.reference.B" />

       <reference fieldname="c" refid="c" />

    </manager>

    <manager id="c" singlable="false">

      

       <reference fieldname="a" refid="a" />

        

       <provider type="DB"

           class="com.chinacreator.spi.reference.C" />

    </manager>

</manager-config>

 

一般情况下只有在依赖的注入的setter方法和构造函数中出现循环引用应该防止外,情况出现循环引用是允许的。

 

目录
相关文章
|
6月前
|
Java 测试技术 Spring
Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成(二)
Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成
|
6月前
|
SQL Java 关系型数据库
Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成(一)
Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成
|
XML JavaScript API
从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之九 || 依赖注入IoC学习 + AOP界面编程初探
更新 1、感谢@dongfo博友的提醒,目前是vue-cli脚手架是3.0.1,vue的版本还是2.5.17,下文已改,感谢纠错! 2、代码已经同步到码云https://gitee.com/laozhangIsPhi/Blog.
1921 0
|
人工智能 BI 存储
bboss aop 实践(2)
 本系列文件之二 介绍bboss aop框架中依赖注入(ioc)功能的使用方法 本系列文章适用于bboss-aop-1.0.5,下载地址:https://sourceforge.net/project/showfiles.php?group_id=238653&package_id=290546&release_id=658454 bboss aop提供两种方式的依赖注入:     属性依赖注入     构建函数依赖注入 另外还举例说明了bboss aop框架是怎么防止循环依赖注入的。
768 0
|
人工智能 BI 存储
bboss aop 实践(2)属性依赖注入
本系列文件之二 介绍bboss aop框架中依赖注入(ioc)功能的使用方法 本系列文章适用于bboss-aop-1.0.5,下载地址:https://sourceforge.net/project/showfiles.php?group_id=238653&package_id=290546&release_id=658454 bboss aop提供两种方式的依赖注入:     属性依赖注入     构建函数依赖注入 另外还举例说明了bboss aop框架是怎么防止循环依赖注入的。
810 0
|
人工智能 文件存储 数据格式
bboss aop 实践(3)构造函数依赖注入
系列文章的前两篇介绍bboss aop框架的配置文件语法和属性依赖注入功能,本篇介绍bboss aop框架的构造函数依赖注入功能。 bboss-aop-1.0.5,下载地址: https://sourceforge.
910 0
bboss aop 实践 (3-1) 构造函数依赖注入
                                                                                                                         ...
779 0
|
人工智能 数据库
bboss aop 实践(5) 拦截器(Interceptor)
bboss项目下载列表 在sourceforge访问地址为:https://sourceforge.net/project/showfiles.php?group_id=238653  bboss aop框架中,可以为业务组件配置1到多个拦截器(Interceptor)。
822 0
|
XML 人工智能 数据格式
bboss aop 实践 (5-1) 拦截器(Interceptor)
,文件内容如下:                          其它拦截器 -->           将simplemanager-interceptor.xml文件配置在主文件manager-provider.xml文件中:   这样我们就配置完毕了。
720 0
|
5月前
|
Java 编译器 数据安全/隐私保护
自定义注解与AOP结合使用
自定义注解与AOP结合使用
59 0