如何在E4应用程序中注入自定义单例bean?

时间:2014-10-09 06:34:03

标签: java dependency-injection eclipse-rcp e4

有人可以解释一下如何使用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),但这对我不起作用

1 个答案:

答案 0 :(得分:2)

您需要将@Creatable注释添加到ConnectionPoolorg.eclipse.e4.core.di.annotations.Creatable):

@Singleton
@Creatable
public class ConnectionPool

您还可以使用OSGi服务进行服务。也可以在AddOn或应用程序LifeCycle类中创建服务。您还可以使用ContextFunction创建服务。