有人可以解释一下如何使用Eclipse E4 DI功能注入我的自定义服务/提供商吗?
@Singleton
public class ConnectionPool {
// should be a singleton
}
public class MyService implements IMyService {
@Inject
ConnectionPool pool;
}
// referenced in application model
public class SamplePart {
@Inject
IMyService myService;
@PostConstruct
public void createComposite(Composite parent) {
myService.doSomething();
}
}
或者可以将Eclipse Guice(例如)与Eclipse DI一起使用吗?
我尝试过几个例子(比如this),但这对我不起作用
答案 0 :(得分:2)
您需要将@Creatable
注释添加到ConnectionPool
(org.eclipse.e4.core.di.annotations.Creatable
):
@Singleton
@Creatable
public class ConnectionPool
您还可以使用OSGi服务进行服务。也可以在AddOn或应用程序LifeCycle类中创建服务。您还可以使用ContextFunction
创建服务。