【问题标题】:How to configure Spring-DM OSGi service for new instance per call?如何为每次调用的新实例配置 Spring-DM OSGi 服务?
【发布时间】:2010-06-16 21:08:28
【问题描述】:

我开始深入研究在 RCP 应用程序中使用 Spring DM 和 OSGi 服务。我创建了一个服务,供 RCP 应用程序中的另一个包使用。它通过调用 getBundleContext().getServiceReference() 使用显式的包名称和服务类名称来查找服务。我还没有在任何地方使用 DI。我遇到的问题是请求包中返回的服务是单例的。有时我会注意到一个线程问题,因为它是一个“有状态”服务。如何配置应用程序以在每次调用时取回一个新的服务实例?

这是我注册服务的 spring xml 文件内容:

<bean id="myServBean" class="com.xyz.ClassImpl"/>
<osgi:service ref="myServBean" class="com.xyz.Class"/>

【问题讨论】:

    标签: osgi


    【解决方案1】:

    OSGi 服务通常可以被多个客户端同时调用。 OSGi 开箱即用的唯一支持是使用 ServiceFactory,它允许您向每个调用客户端包返回不同的实例。没有标准机制可以为每个方法调用创建一个新实例。您必须自己在服务实现中处理它。

    【讨论】:

    • 谢谢,这也是我在其他地方读到的,想确认一下。
    猜你喜欢
    • 1970-01-01
    • 2014-09-09
    • 2014-02-16
    • 2023-04-07
    • 1970-01-01
    • 2015-04-16
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多