声明式服务的创建

项目中采用声明式服务的方式,在定义接口对象时就可以不用实例化,直接采用注入的方式,实现步骤如下:

1、 在类中定义要调用类的接口对象,并进行注入,如下代码段所示:

privateIConnectionManconnectionMan[U1] ;

 

   /**

     *@paramconn

     */

   publicvoidunbindConnectionMan(IConnectionMan conn) {

      this.connectionMan=null;

    }

 

   /**

     *@paramconn

     */

   publicvoidbindConnectionMan(IConnectionMan conn) {

      this.connectionMan= conn;

    }

2、 注入配置,如下代码段所示

<?xml version='1.0' encoding='utf-8'?>

<componentname='msgProvider'xmlns='http://www.osgi.org/xmlns/scr/v1.1.0'>

   <implementationclass='com.cvicse.naba.service.impl.message.MessageManSrvImpl'/>[U2] 

 

   <service>

      <provideinterface="com.cvicse.naba.service.api.msg.IMessageManSrv"/>[U3] 

   </service>

   <referenceinterface="com.cvicse.naba.collection.api.IConnectionMan"[U4] 

      name="com.cvicse.naba.collection.api.IConnectionMan"policy="dynamic"

      bind="bindConnectionMan"[U5] unbind="unbindConnectionMan"[U6] cardinality="0..1"/>[U7] 

 

</component>


 [U1]可直接调用IconnectionMan接口中的方法

 [U2]指调用该接口的实现类(1中代码段所在类)

 [U3]指实现类所继承的接口

 [U4]要调用的接口

 [U5]对象初始化方法

 [U6]对象清空方法

 [U7]实例个数