OSGi and Spring integration



我有两个捆绑包A和B,捆绑包A有一个服务激活器,其中包含一个名为接收的方法用于接收电子邮件,捆绑包B使用来自捆绑包A的电子邮件,所以我想如何在OSGi中将服务激活器公开为服务。

根据需要创建接口。我将为您提供一个示例:

public interface Receiver {
    void receive(String smth);
}

创建实现类:

public class ReceiverImpl implements Receiver {
    @Override
    public void receive(String smth) {
    }
}

然后使用 Spring 将接收器公开为 OSGi 服务,如下所示:

<bean id="receiver" class="com.yourpackage.ReceiverImpl"/>
<osgi:service ref="receiver" interface="com.yourpackage.Receiver"/>

要完成这项工作,请确保您的 Receiver 捆绑包导出清单条目中的包,并且您的使用者捆绑包导入该包。

要在其他捆绑包中调用接收器,请使用:

<osgi:reference id="receiver" interface="com.yourpackage.Receiver"/>

然后,您可以将接收器的属性设置为将使用它的捆绑包的任何 Spring bean。

最新更新