java - 使用 Spring DM 添加 ServiceListener

标签 java osgi spring-dm

我想知道是否可以做等同于

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

使用 Spring DM。我找到了 adding listeners for lifecycle management 的引用资料.但这与被注册服务的生命周期有关。我需要的是了解已注册/未注册特定服务接口(interface)的任何服务的生命周期。

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

最佳答案

Spring DM 包括对引用服务集合的支持。不幸的是,作为新用户,我不能发布链接,但是这个功能在 Spring DM 1.2 文档的第 7.2.2 节中有描述。随着服务添加到服务注册表和从服务注册表中删除,Spring DM 在运行时自动更新此集合的内容。

当您声明对服务的引用时,无论是作为单个引用还是服务集合,您还可以声明一个监听器 bean,它将在服务来来去去时收到通知。这记录在第 7.2.3 节中。

我建议使用服务列表或服务集,并使用监听器 bean,以便在集合内容发生更改时通知您。

关于java - 使用 Spring DM 添加 ServiceListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/927708/

相关文章:

java - 从文本中查找字符对

java - 如何使用 EclipseLink 使 PostgreSQL 与 OSGi 一起工作

java - 如何在 Karaf 4 中部署 Osgi Compendium 服务?

java - OSGi 列表,那些 header 是什么?

java - 当 API 引入新的异常类型时编写向前兼容的代码

java - 尽管已在 xml 中初始化,Spring 批处理仍提示 BATCH_JOB_INSTANCE 不存在

java - 与 Java 交互时的 Scala 类型/集合,反之亦然

java - karaf 中的 Spring Jdbc 声明式事务管理

java - 束中 Unresolved 约束,缺少要求 osgi.wiring.package

spring - 在 Java 中创建微服务的正确路径是什么? Spring Boot 或 OSGI