Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OSGi配置文件类似于Spring配置文件_Osgi_Apache Karaf_Osgi Bundle_Karaf_Blueprint Osgi - Fatal编程技术网

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)