Dependency injection OSGi/Felix声明性服务:如何过滤要绑定的服务?
我正在使用ApacheFelix及其声明性服务(SCR)来连接捆绑包之间的服务依赖关系 例如,如果我需要访问java.util.Dictionary,我可以说以下几点,让SCR提供一个: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
/**
* @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注释中起作用。看见