在 OSGi 中使用声明性服务实现服务工厂



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

servicefactory="true"

如下。

<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>

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

这里可能出现什么问题?

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

如果您希望使用者对实例数进行编程控制,则需要使用 ComponentFactory 方法。

相关内容

  • 没有找到相关文章

最新更新