声明性服务中的Eclipse4声明性服务注入

声明性服务中的Eclipse4声明性服务注入,eclipse,dependency-injection,declarative-services,Eclipse,Dependency Injection,Declarative Services,我正在创建声明性服务,让我们称它们为Service1和Service2。 在我的EclipseRCP应用程序中一切正常。 现在我希望将我的Service1注入Service2,因此我的Service2类有一个新字段,如下所示: @Inject Service1 myService1; 在Eclipse4(org.Eclipse.equinox.internal.ds.model.ServiceComponent)中的声明性服务实例中,从来没有注入和调试过一点这一点。在类被实例化之后,似乎没有注

我正在创建声明性服务,让我们称它们为Service1和Service2。 在我的EclipseRCP应用程序中一切正常。 现在我希望将我的Service1注入Service2,因此我的Service2类有一个新字段,如下所示:

@Inject
Service1 myService1;
在Eclipse4(org.Eclipse.equinox.internal.ds.model.ServiceComponent)中的声明性服务实例中,从来没有注入和调试过一点这一点。在类被实例化之后,似乎没有注入任何东西。 这是eclipse中DS实现的限制吗

有办法解决这个问题吗?
谢谢。

不,默认情况下不可能。您可以在@Acivate上创建一些实用程序类,该类在tracker上搜索共同响应的服务,并将@Inject服务设置为反射,但在这种情况下,您将失去整个生命周期,因此这不是一种好的osgi方法

如果您想使用@Inject annotation,您可以使用pax cdi,但在这种情况下,您不能在该类上使用声明性服务注释,因为在这种情况下,pax将在跟踪器上实例化并注册服务