我正在使用OSGi声明服务和设置
注册OSGi服务的ServiceFactory = “真”
如下。
<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>
我正在尝试从另一个捆绑包中多次使用该服务。 但是,它返回了我相同的服务实例。
这里可能出现什么问题?
答案 0 :(得分:5)
servicefactory
标志表示每个使用者包都获得一个单独的实例。因此,如果您从2个捆绑包中使用该服务,那么您将获得2个实例。您不为每个消费者提供多个实例。
如果您想要消费者对实例数量进行编程控制,那么您需要使用ComponentFactory
方法。