2

我正在使用 OSGi 声明式服务和设置注册 OSGi 服务

服务工厂=“真”

如下。

<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="test.Configuration">
  <implementation class="test.ConfigurationImpl"/>
  <service servicefactory="true">
     <provide interface="test.Configuration"/>
  </service>
</scr:component>

我正在尝试从另一个捆绑包中多次使用该服务。但是,它返回给我相同的服务实例。

这里可能出了什么问题?

4

1 回答 1

5

servicefactory标志意味着每个消费者捆绑包都有一个单独的实例。因此,如果您使用 2 个捆绑包中的服务,那么您将获得 2 个实例。每个消费者不会获得多个实例。

如果您希望消费者对实例数量进行编程控制,那么您需要使用该ComponentFactory方法。

于 2012-06-21T13:35:26.357 回答