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=658454bboss aop提供两种方式的依赖注入:     属性依赖注入     构建函数依赖注入另外还举例说明了bboss aop框架是怎么防止循环依赖注入的。

 本系列文件之二 介绍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 {

}

目录
相关文章
|
4月前
|
监控 安全 Java
Java中的AOP编程实践与应用场景
Java中的AOP编程实践与应用场景
|
4月前
|
Java 测试技术 数据安全/隐私保护
Spring Boot中的AOP编程实践
Spring Boot中的AOP编程实践
|
6月前
|
XML 监控 Java
Spring AOP:解锁切面编程的威力与实践
Spring AOP:解锁切面编程的威力与实践
47 0
Spring AOP:解锁切面编程的威力与实践
|
6月前
|
Java Spring
代码优雅的转变:基于注解的AOP编程在Spring中的实践
代码优雅的转变:基于注解的AOP编程在Spring中的实践
35 0
|
6月前
|
Java Spring
spring boot aop 实践---记录日志
spring boot aop 实践---记录日志
49 0
|
XML 缓存 Java
Spring AOP注解的学习与实践
使用&quot;横切&quot;技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日志、事物。AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。
135 0
Spring AOP注解的学习与实践
|
存储 SQL druid
SpringBoot+AOP构建多数据源的切换实践
SpringBoot+AOP构建多数据源的切换实践
SpringBoot+AOP构建多数据源的切换实践
|
XML 数据格式 数据库
bboss-aop 实践(1) xml配置文件语法
bboss-aop框架是一个基于动态代理技术实现的轻量级aop框架,提供基本的组件管理功能(支持组件单实例和多实例模式),支持声明式事务管理,拦截器(可配置多个拦截器),以及依赖注入(提供防止循环依赖注入的功能),管理服务方法的同步调用。
1056 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框架是怎么防止循环依赖注入的。
830 0