2

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>

別のバンドルからサービスを複数回使用しようとしています。しかし、それは私にサービスの同じインスタンスを返します。

ここで何がうまくいかない可能性がありますか?

4

1 に答える 1

5

フラグは、servicefactory各コンシューマバンドルが個別のインスタンスを取得することを意味します。したがって、2つのバンドルからサービスを利用する場合、2つのインスタンスを取得します。コンシューマーごとに複数のインスタンスを取得することはありません。

ComponentFactoryインスタンスの数をコンシューマーからプログラムで制御する場合は、このアプローチを使用する必要があります。

于 2012-06-21T13:35:26.357 に答える