`

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

阅读更多

 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方法和构造函数中出现循环引用应该防止外,情况出现循环引用是允许的。

 

分享到:
评论

相关推荐

    bboss-aop.jar

    官方版本,亲测可用

    bboss-aop-test.jar

    官方版本,亲测可用

    bboss mvcdemo 下载地址

    4. **AOP(面向切面编程)**:BBoss MVCDemo支持AOP,可以实现如事务管理、日志记录、权限控制等功能,提高代码的复用性和可维护性。 5. **国际化与本地化**:框架内置了国际化和本地化支持,使得应用可以根据用户...

    Bboss国际化实践.ppt

    【Bboss国际化实践】主要涉及了软件系统的全球化适应性改造,以便支持多语言环境。以下是对这个主题的详细解析: 1. **界面元素国际化**: - 界面文字:所有用户可见的文字都需要进行翻译,确保不同语言环境下的...

    bboss会话共享培训文档

    安全性方面,bboss会话共享通过在客户端基于cookie机制存储sessionid,并设置cookie的HttpOnly属性来防止XSS攻击窃取sessionid,通过设置Secure属性并在HTTPS环境下传输来防止sessionid被窃取。同时,还提供会话信息...

    基于Java的bboss开源框架设计源码

    bboss框架集成了AOP/iOC、MVC、持久化标签库、RPC、事件处理、Bean-XML序列化等多种功能。本项目基于bboss框架构建了数据采集ETL工具、流批一体化Stream工具、Elasticsearch客户端工具和WebSession共享框架等应用。

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    bboss+es基本操作示例.zip

    集成bboss和Elasticsearch时,首先需要在项目中引入bboss的依赖,并配置Elasticsearch的相关连接信息,如集群名称、节点地址等。然后可以通过bboss提供的API进行索引创建、数据插入、查询、更新、删除等操作。 4. ...

    企业级J2EE开源框架bboss

    BBoss(全称为bbossgroups)是一个专为企业级J2EE应用设计的开源框架,它为Java开发者提供了一系列强大的工具和服务,以简化Web应用程序的开发过程。该框架旨在提高开发效率,降低维护成本,同时保持高度的灵活性和...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    4. **BBoss 安装**: 获取 BBoss 的 JAR 包,将其添加到项目的类路径中。 5. **配置BBoss**: 根据项目需求,配置 BBoss 的连接参数,如集群地址、端口等。 **四、开发入门** 1. **创建索引**: 使用 BBoss 提供的 API...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

    bboss ioc配置文件中使用外部属性文件介绍

    在Java开发中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它能提高代码的可测试性和可维护性。BBoss是一个轻量级的企业级应用开发框架,提供了IOC(Inversion of Control)功能,使得对象之间...

    bboss 安全认证过滤器功能介绍

    6. **会话超时与退出**:为了防止会话固定攻击,BBoss框架会设置会话超时机制。此外,用户可以通过点击退出按钮来清除会话,此时`SYSAuthenticateFilter`会确保所有相关的认证信息从会话中移除。 通过阅读`...

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    **bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。它实现了流批一体化的数据处理能力,使得用户能够灵活地应对实时和批量的数据处理场景。在...

    bboss-db-elasticsearch-tool-master_java_

    【bboss-db-elasticsearch-tool-master_java_】是一个Java ORM(对象关系映射)框架,它在功能上超越了MyBatis,提供了对多种数据库的广泛支持,包括MySQL、Oracle、PostgreSQL、SQLServer、DB2、DM以及MongoDB。...

    bboss会话共享培训文档分享

    从最初的依赖容器到后来的分布式缓存方案,直至现在的跨容器、基于NOSQL的解决方案,session管理经历了多代的进化。第一代到第五代的演变展示了技术的不断革新,包括了对性能、可扩展性、容错性以及与各种容器的兼容...

    bboss-soa.jar

    官方版本,亲测可用

Global site tag (gtag.js) - Google Analytics