如何为每次调用的新实例配置Spring DM OSGi服务?

如何为每次调用的新实例配置Spring DM OSGi服务?,osgi,Osgi,我开始深入研究在RCP应用程序中使用SpringDM和OSGi服务。我已经创建了一个服务,该服务由RCP应用程序中的另一个bundle使用。它通过调用getBundleContext().getServiceReference()并使用显式的捆绑包名称和服务类名来查找服务。我还没有在任何地方使用DI。我遇到的问题是,请求包中返回的服务是单例服务。有时我会注意到线程问题,因为它是一个“有状态”服务。如何配置应用程序以在每次调用时返回新的服务实例 以下是注册服务的spring xml文件内容: &l

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

以下是注册服务的spring xml文件内容:

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


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

谢谢,这也是我在其他地方读到的并希望确认的内容。