我开始深入研究在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"/>发布于 2010-06-30 23:09:55
OSGi服务通常可以由多个客户端并发调用。OSGi唯一开箱即用支持的就是使用ServiceFactory,它允许您向每个调用客户端包返回一个不同的实例。没有标准的机制来为每个方法调用创建一个新实例。您必须在您的服务实现中自己处理该问题。
https://stackoverflow.com/questions/3057189
复制相似问题