java – 使用Spring DM添加ServiceListener

我想知道是否有可能做相同的

public void start(BundleContext context)
{  
    String filter = "filter for my specific service";
    context.addServiceListener(new MyServiceListener(), filter);
}

与Spring DM.我找到了adding listeners for lifecycle management的参考资料.但这与正在注册的服务的生命周期有关.我需要知道注册/取消注册特定服务接口的任何服务的生命周期.

需要知道这一点的捆绑包实际上并不是在创建服务,而是会使用它.由于此服务的多个实例将在运行时更改,因此我不能简单地在Spring配置中创建服务引用.

最佳答案 Spring DM支持引用一组服务.不幸的是,作为一个新用户,我无法发布链接,但是这个功能在Spring DM 1.2文档的7.2.2节中有所描述. Spring DM会在服务注册表中添加和删除服务时自动更新此集合的内容.

当您在服务上声明引用时,无论是作为单个引用还是作为服务集合,您还可以声明一个侦听器bean,该bean将在服务来来往往时收到通知.这在第7.2.3节中有记录.

我建议使用List或Set服务,并使用监听器bean,以便通知您对集合内容的更改.

点赞