zdhim:
私のような方法で、3つのOSGiバンドルを持って、実装クラスは、同じ名前ではなく別のバンドルにあります。
Bundle A (com.adobe) ---- Interface ( foo() )
Bundle B (org.custom) ---- ChildClassA ( foo() {} )
Bundle C (myprj.adobe) ---- ChildClassA ( foo() {} )
私は以下のようにスニペットを持っています:
Interface refObj;
refObj.foo();
どのように私は別のバンドルから特定の実装クラスのオブジェクトを注入することができます。
おかげで、
クリスチャン・シュナイダー:
あなたが同じインターフェイスを実装するさまざまなサービスを持っているなら、あなたは可能なサービスにプロパティを追加します。
クライアント側では、あなたは、ターゲットとの参照を使用することができます。
@Reference(target="(key=value)")
この参照は、値のみ「値」プロパティ「キー」でサービスを一致します。