`

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框架是怎么防止循环依赖注入的。下面逐一说明。

  1. 属性依赖注入
       
        首先定义两个组件接口和组件实现
            组件com.chinacreator.spi.reference.A和组件接口com.chinacreator.spi.reference.AI
            组件com.chinacreator.spi.reference.B和组件接口com.chinacreator.spi.reference.BI
       组件A中引用了组件接口BI的一个引用,另外A还引用了一个普通的java对象com.chinacreator.spi.reference.Test的变量test。
       我们通过bboss aop框架来管理组件A和组件B,并且通过属性注入的方式初始化A对BI的引用属性,初始化Test变量。
      
       假设上述类接口都已经定义好,组件也已经实现。
       我们直接来看看怎么来编写bboss aop配置文件:

  <?xml version="1.0" encoding='gb2312'?>
<manager-config>
        <manager id="a" singlable="false">
                <!--
                        基于数据库的用户管理实现
                        属性描述:
                        type:代表数据存储的类型,例如DB,LDAP,ACTIVEDIRECTORY等等
                      
                        class:实现类代码
                    
                -->
                <provider type="DB"
                        class="com.chinacreator.spi.reference.A" />
                <reference fieldname="b" refid="b" />
                <reference fieldname="test" class="com.chinacreator.spi.reference.Test"/>
               
               
        </manager>
       
      
        <manager id="b" singlable="false">
                <!--
                        基于数据库的用户管理实现
                        属性描述:
                        type:代表数据存储的类型,例如DB,LDAP,ACTIVEDIRECTORY等等
                        class:实现类代码
                                        -->
                <provider type="DB"                         class="com.chinacreator.spi.reference.B" />
               
        </manager>
       
</manager-config>

可以将上述文件存储在一个名叫manager-provider-reference.xml文件中放在工程的src目录下,同时将该文件通过manager-provider.xml主文件导入即可,manager-provider.xml,文件添加以下行即可:

        <managerimport file="manager-provider-reference.xml" />

配置文件写好后就可以通过com.chinacreator.spi.BaseSPIManager组件来获取AI的实例对象了:

                try {
                        AI a = (AI)BaseSPIManager.getProvider("a");
                        System.out.println("a:" + a);
                        System.out.println("a:" +a.getB());
                        System.out.println("a.getTest():" +a.getTest());
                       
                } catch (SPIException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

  附带几个类的定义:
package com.chinacreator.spi.reference;

public class A implements AI{
        private BI b;
        private Test test;

        public void setB(BI b) {
                this.b = b;
        }

        public BI getB() {
                return b;
        }

        public void setTest(Test test) {
                this.test = test;
               
               
        }
        public Test getTest() {
                return this.test;
        }

}


package com.chinacreator.spi.reference;

public interface AI {
        public void setB(BI b) ;

        public BI getB() ;
        public void setTest(Test test);
        public Test getTest();

}


package com.chinacreator.spi.reference;

public class B  implements BI{
        private CI c;

        public void setC(CI c) {
                this.c = c;
        }

        public CI getC() {
                return c;
        }

}

package com.chinacreator.spi.reference;

public interface BI {
        public void setC(CI c);

        public CI getC() ;

}


package com.chinacreator.spi.reference;

public class Test {

}

分享到:
评论

相关推荐

    bboss-aop.jar

    官方版本,亲测可用

    bboss-aop-test.jar

    官方版本,亲测可用

    bboss mvcdemo 下载地址

    2. **视图(View)**:视图层是用户界面,BBoss MVCDemo允许开发者使用JSP、FreeMarker、Velocity等模板引擎来创建动态页面。视图与控制器通过请求参数进行交互,展示由控制器处理后传递的数据。 3. **控制器...

    Bboss国际化实践.ppt

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

    bboss会话共享培训文档

    bboss兼容Servlet 2/3规范,能够与现有的应用系统无缝集成,减少或无需进行修改。它还支持跨多个主流应用服务器(如Tomcat、WebLogic、WebSphere、Jetty等)部署,并且没有会话粘滞性的约束,允许客户端请求均匀地...

    基于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管理单集群功能和管理多集群功能 单集群测试用例:...

    企业级J2EE开源框架bboss

    2. **数据库操作**:BBoss提供了便捷的数据访问层(DAO),支持SQL动态生成、事务管理以及多种数据库的兼容性,使得数据库操作变得简单且高效。 3. **服务治理**:框架内置了服务注册与发现机制,可以实现微服务...

    bboss+es基本操作示例.zip

    **bboss+es基本操作示例** ...总之,bboss+es基本操作示例是学习和实践Elasticsearch与Java集成的优秀资源,通过这个示例,开发者可以快速掌握bboss框架下的DSL操作,为实际项目开发打下坚实基础。

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

    2. **bboss elasticsearch开发入门教程.wmv**: 通过实例演示,讲解如何使用BBoss进行索引操作、数据插入、查询和更新,帮助初学者快速上手。 **六、资料阅读** "说明.txt" 文件可能包含了关于这些教程的详细步骤和...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

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

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

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

    bboss elasticsearch-5.7.8.rar

    2. `jackson-databind-2.9.8.jar`:Jackson是JSON处理库,`databind`模块实现了将Java对象映射到JSON和反向映射的功能,对于Elasticsearch的数据导入和导出非常关键。 3. `bboss-util-5.5.0.jar`和`bboss-...

    bboss-db-elasticsearch-tool-master_java_

    2. **缓存机制**:提供缓存策略,减少对数据库的直接访问,提高性能。 3. **批量操作**:支持数据的批量插入、更新和删除,优化大数据量操作的效率。 4. **动态SQL**:允许在运行时构建和执行SQL,增加了代码的灵活...

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

    BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...

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

    BBoss是一个轻量级的企业级应用开发框架,提供了IOC(Inversion of Control)功能,使得对象之间的依赖关系可以通过配置文件进行管理。本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和...

    bboss persistent 1.0.2中方便地实现大字段(clob,blob)的处理

    2. **流式处理**:BBoss Persistent支持流式处理,这意味着数据可以从数据库中逐块读取到内存,然后直接写入输出流,反之亦然。这种机制尤其适合处理大型文件,因为它降低了对内存的需求。 3. **事务管理**:在...

    bboss-soa.jar

    官方版本,亲测可用

Global site tag (gtag.js) - Google Analytics