OSGi配置文件类似于Spring配置文件

OSGi配置文件类似于Spring配置文件,osgi,apache-karaf,osgi-bundle,karaf,blueprint-osgi,Osgi,Apache Karaf,Osgi Bundle,Karaf,Blueprint Osgi,我有一个OSGi服务,有两个实现。一个用于生产,一个用于测试 有没有办法通过代码在不同的环境中切换它们?类似于的内容与配置文件没有直接匹配。您可以使用不同的服务属性发布这两个服务。然后,在服务使用者上,您可以使用筛选器来决定使用哪个服务 在声明性服务中,可以通过为组件提供配置在运行时更改此筛选器。在代码中,您将过滤器设置为默认值,如下面的“prod” 在注入服务的组件的配置中,可以添加属性以更改此筛选器: myService.target=(profile=dev) 另一种更常见的方法是简单地

我有一个OSGi服务,有两个实现。一个用于生产,一个用于测试


有没有办法通过代码在不同的环境中切换它们?类似于

的内容与配置文件没有直接匹配。您可以使用不同的服务属性发布这两个服务。然后,在服务使用者上,您可以使用筛选器来决定使用哪个服务

在声明性服务中,可以通过为组件提供配置在运行时更改此筛选器。在代码中,您将过滤器设置为默认值,如下面的“prod”

在注入服务的组件的配置中,可以添加属性以更改此筛选器:

myService.target=(profile=dev)

另一种更常见的方法是简单地为dev和prod部署不同的服务。在测试中,您部署了一个虚拟服务,而在prod中,您部署了真正的服务。这种方法的优点是可以与OSGi中的任何DI框架一起使用。

现在如何注册OSGi服务?以编程方式?
myService.target=(profile=dev)