我是OSGI的新手,我想了解如何注册服务?是否总是通过BundleContext
对象在Activator
?有没有其他可用的方法?注册服务并寻找服务
假设我有一个接口IService
,并有两个实现ServiceImpl1
和ServiceImpl2
在同一捆我正在注册他们如下。
context.registerService(IService.class.getName(), new ServiceImpl1(), props);
context.registerService(IService.class.getName(), new ServiceImpl2(), props);
但困惑是我该如何特别要求特定的服务实施?
serviceImplObject = (IService) dictionaryServiceTracker.getService();</pre>
我不知道在这种情况下我会得到哪个实现。另外我没有看到任何选项来设置我需要什么类型的服务实现?
如果您使用的是过滤器,您将得到最适合您的过滤器的排名。否则,你会得到最高级别的实现 – Mirco