我有两个包 A 和 B ,包 A 有一个服务激活器,其中包含一个名为 receive 用于接收电子邮件的方法,包 B 使用来自包 A 的电子邮件,所以我想如何在 OSGi 中将服务激活器公开为服务。
问问题
895 次
1 回答
1
根据您的需要创建一个界面。我将为您提供一个示例:
public interface Receiver {
void receive(String smth);
}
创建一个实现类:
public class ReceiverImpl implements Receiver {
@Override
public void receive(String smth) {
}
}
然后使用 Spring 将 Receiver 公开为 OSGi 服务,如下所示:
<bean id="receiver" class="com.yourpackage.ReceiverImpl"/>
<osgi:service ref="receiver" interface="com.yourpackage.Receiver"/>
要完成这项工作,请确保您的 Receiver 包导出清单条目中的包,并且您的 Consumer 包导入该包。
要调用其他捆绑包中的接收器,请使用:
<osgi:reference id="receiver" interface="com.yourpackage.Receiver"/>
然后,您可以将 Receiver 的属性设置为将使用它的捆绑包的任何 Spring bean。
于 2012-11-27T09:56:28.980 回答