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