当您在运行时之前不知道要请求的服务的属性时,获取服务的正确方法是什么,如果可能的话,希望使用声明式服务?
该用例类似于有 3 个提供服务版本 1.0、2.0 和 3.0 的捆绑包,但直到用户在 UI 中选择一个之后才知道将使用哪一个。如果用户选择 2.0,消费者将使用 bundle 2.0 中的东西
我们正在使用 BND 注释,所以带有它们的东西会是理想的,但我有一种感觉,我们需要直接使用 OSGi API,而不是使用注释或声明性服务注入。
最后,如果它是相关的,这更多的是获得资源的不同版本(XML 模式),而不是不同的行为/实现。这个想法是服务将提供其内部资源,每个版本都会有所不同,即使服务本身的代码是相同的