dependency-injection - OSGi/Felix 声明式服务 : How to filter the services to be bound?

标签 dependency-injection annotations osgi apache-felix

我正在使用 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/

相关文章:

javascript - 何时使用 Pub/Sub 与依赖注入(inject)的最佳实践

c# - 使用依赖注入(inject)进行内部操作的类库的最佳实践是什么?

jax-rs - 使用 CXF JAX-RS 的 Liferay 7.1 自定义 portlet

java - Guice:类或实例级绑定(bind)注释

java - Java 注解的默认值是否被编译成字节码?

java - 如何在java 1.8上运行ant apt任务

java - Hibernate OneToOne 加入唯一但不是主键

java - Eclipselink 是否在 Apache Felix 下使用(动态)字节码编织?

java - 包使用冲突: Import-Package with jasperreports

java - 如何在 Micronaut 中使用@Parameter?