我正在使用 Apache Felix 及其声明性服务 (SCR) 来连接包之间的服务依赖关系。
例如,如果我需要访问 java.util.Dictionary,我可以说以下内容让 SCR 提供:
/**
* @scr.reference name=properties interface=java.util.Dictionary
*/
protected void bindProperties(Dictionary d) {
}
protected void unbindProperties(Dictionary d) {
}
现在,我有多个可用的 Dictionary 服务,我想使用“name”服务属性来过滤它们(我只想要“name=myDictionary”)。我可以用代码来做到这一点(使用 ServiceTracker),但我宁愿在 @scr 注释中指定过滤器。
最佳答案
我认为
target="(name=myDictionary)"
应该在
@scr.reference
中解决问题注解。见 http://felix.apache.org/site/apache-felix-maven-scr-plugin.html
关于dependency-injection - OSGi/Felix 声明式服务 : How to filter the services to be bound?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/308813/