我正在开发一个 OSGi 包,它使用 @Reference 进行服务引用。在 Google 中搜索时,我可以看到一些在类级别使用 @References 注释的示例,并且在类内部仅将绑定(bind)和取消绑定(bind)方法用于所有服务引用。
@References(
@Reference(cardinality= ReferenceCardinality.MANDATORY_MULTIPLE, referenceInterface = TestInterface1.class,policy = ReferencePolicy.DYNAMIC)
@Reference(cardinality= ReferenceCardinality.MANDATORY_MULTIPLE, referenceInterface = TestInterface2.class,policy = ReferencePolicy.DYNAMIC))
class TestComponent {
..
public void bind(TestInterface1 interface)
{}
public void unbind(TestInterface1 interface){}
public void bind(TestInterface2 interface)
{}
public void unbind(TestInterface2 interface){}
}
@Reference 和 @References 之间有什么区别?是否有任何使用@References 的性能测量/推荐测量?由于所有引用类的绑定(bind)和取消绑定(bind)方法名称都是相同的。
最佳答案
在Java 7中,不可能定义repeating annotation 。因此,必须使用容器注解。
@References 是一种容器注释,允许您在一种类型上指定多个 @Reference 注释。它没有任何性能差异。它不可能有,因为这些注释在运行时根本不被处理(仅在编译时由注释处理器处理)。
关于java - felix scr 中 @Reference 和 @References 注解之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39211041/