我有3种OSGi捆绑包,例如,实现的类具有相同的名称,但位于不同的捆绑包中:
Bundle A (com.adobe) ---- Interface ( foo() )
Bundle B (org.custom) ---- ChildClassA ( foo() {} )
Bundle C (myprj.adobe) ---- ChildClassA ( foo() {} )
我有一个如下的片段:
Interface refObj;
refObj.foo();
如何从另一个捆绑包中注入特定实现类的对象。
谢谢
答案 0 :(得分:5)
如果您具有实现同一接口的不同服务,则可以add properties to the services。
在客户端,您可以将引用与目标一起使用。
@Reference(target="(key=value)")
此引用将只匹配具有“值”属性“键”的服务。