项目中采用声明式服务的方式,在定义接口对象时就可以不用实例化,直接采用注入的方式,实现步骤如下:
1、 在类中定义要调用类的接口对象,并进行注入,如下代码段所示:
private IConnectionMan connectionMan[U1] ;
/**
* @param conn
*/
public void unbindConnectionMan(IConnectionMan conn) {
this.connectionMan = null;
}
/**
* @param conn
*/
public void bindConnectionMan(IConnectionMan conn) {
this.connectionMan = conn;
}
2、 注入配置,如下代码段所示
<?xml version='1.0' encoding='utf-8'?>
<component name='msgProvider' xmlns='http://www.osgi.org/xmlns/scr/v1.1.0'>
<implementation class='com.cvicse.naba.service.impl.message.MessageManSrvImpl' />[U2]
<service>
<provide interface="com.cvicse.naba.service.api.msg.IMessageManSrv" />[U3]
</service>
<reference interface="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>