Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Dependency injection OSGi/Felix声明性服务:如何过滤要绑定的服务?_Dependency Injection_Annotations_Osgi_Apache Felix - Fatal编程技术网

Dependency injection OSGi/Felix声明性服务:如何过滤要绑定的服务?

Dependency injection OSGi/Felix声明性服务:如何过滤要绑定的服务?,dependency-injection,annotations,osgi,apache-felix,Dependency Injection,Annotations,Osgi,Apache Felix,我正在使用ApacheFelix及其声明性服务(SCR)来连接捆绑包之间的服务依赖关系 例如,如果我需要访问java.util.Dictionary,我可以说以下几点,让SCR提供一个: /** * @scr.reference name=properties interface=java.util.Dictionary */ protected void bindProperties(Dictionary d) { } protected void unbindProperties(Dic

我正在使用ApacheFelix及其声明性服务(SCR)来连接捆绑包之间的服务依赖关系

例如,如果我需要访问java.util.Dictionary,我可以说以下几点,让SCR提供一个:

/**
* @scr.reference name=properties interface=java.util.Dictionary
*/

protected void bindProperties(Dictionary d) {
}

protected void unbindProperties(Dictionary d) {
}

现在,我有多个字典服务可用,我想使用“name”服务属性对它们进行过滤(我只想要“name=myDictionary”)。我可以通过代码(使用ServiceTracker)实现这一点,但我更愿意在@scr注释中指定过滤器。

在标准DS中,可以使用引用元素的target属性。在可以使用注释的Felix世界中,我不知道什么是等价物

目标属性是LDAP筛选器,它与服务属性匹配。因此,您的过滤器应为:


(name=myDictionary)

我想

target="(name=myDictionary)"
应该在
@scr.reference
注释中完成这个技巧。请参见

我认为target=“(name=myDictionary)”应该在@scr.reference注释中起作用。看见