Osgi iPOJO@Bind/@Unbind方法允许的签名
在我所看到的所有iPOJO示例中,Osgi iPOJO@Bind/@Unbind方法允许的签名,osgi,ipojo,blueprint-osgi,Osgi,Ipojo,Blueprint Osgi,在我所看到的所有iPOJO示例中,@Bind和@Unbind回调仅将服务实例作为参数,即 // @Requires // private Foo foo; @Bind public void bindFoo(Foo foo) { ... } @Unbind public void unbindFoo(Foo foo) { ... } 蓝图 public void bindFoo(ServiceReference){…} 公共void bindFoo(Foo-Foo,映射属性){…} iP
@Bind
和@Unbind
回调仅将服务实例作为参数,即
// @Requires
// private Foo foo;
@Bind
public void bindFoo(Foo foo) { ... }
@Unbind
public void unbindFoo(Foo foo) { ... }
蓝图
public void bindFoo(ServiceReference){…}
公共void bindFoo(Foo-Foo,映射属性){…}
iPOJO回调是否也可以访问服务属性或
ServiceReference
?或者应该用于此目的?回调可以具有以下签名之一:
@Bind
public void bind() { ... }
@Bind
public void bind(Service svc) { ... }
@Bind
public void bind(ServiceReference ref) { ... }
@Bind
public void bind(Service svc, ServiceReference ref) { ... }
@Bind
public void bind(Service svc, Map properties) { ... }
@Bind
public void bind(Service svc, Dictionary properties) { ... }
因此,访问服务属性没有问题。除非您真的需要ServiceReference,否则最好不要使用这个OSGi特定的对象(减少可测试性)
@Bind
public void bind() { ... }
@Bind
public void bind(Service svc) { ... }
@Bind
public void bind(ServiceReference ref) { ... }
@Bind
public void bind(Service svc, ServiceReference ref) { ... }
@Bind
public void bind(Service svc, Map properties) { ... }
@Bind
public void bind(Service svc, Dictionary properties) { ... }