现在使用@Creatable
注释可以标记要注入的类,而无需在生命周期中手动添加EclipseContext
:
然而,下面的场景呢:假设我有一个接口SomethingService
和一些实现,我想通过它的接口引用其中一个(即一个注释为可创建的),类似的东西:
@Creatable
class Todo implements SomethingService {
@Inject
public Todo(SomeArg arg) {
// placeholder
}
}
// Field Injection
@Inject private SomethingService service; // Todo instance
这似乎根本不起作用。有没有办法实现我的需要?
答案 0 :(得分:3)
好吧,从我能看到的内容我应该用OSGi声明服务完成,或者像“Eclipse 4 Plug-in Development by Example”中的示例那样修改Activator,如下所示:
public class Activator implements BundleActivator {
public void start(BundleContext bundleContext) throws
InjectorFactory.getDefault().
addBinding(IStringService.class).implementedBy(StringService.class);
}
}
由于