java - 如何在 E4 应用程序中注入(inject)自定义单例 bean?

标签 java dependency-injection eclipse-rcp e4

有人可以解释一下如何使用 Eclipse E4 DI 功能来注入(inject)我的自定义服务/提供程序吗?

@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();
    }
}

或者是否可以将 Google Guice(例如)与 Eclipse DI 一起使用?

我尝试了几个例子(例如 this ),但它对我不起作用

最佳答案

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

@Singleton
@Creatable
public class ConnectionPool

您还可以使用 OSGi 服务来实现该服务。还可以在 AddOn 或应用程序 LifeCycle 类中创建服务。您还可以使用 ContextFunction 创建服务。

关于java - 如何在 E4 应用程序中注入(inject)自定义单例 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26271800/

相关文章:

SWT 浏览器 XULRUNNER 10 : how to enable javascript to access to system clipboard

java - 从Java(然后是Eclipse)运行Maven,Gradle或其他基于批处理的脚本

java - 链接列表 getNext() 和 while(next!= null );问题

java - 将HashMap内容写入文件

ios - 向下传递数据

java - 在 Eclipse 中向 Project Explorer 添加过滤器

java 如何让角色跟随寻路

php - 静态方法 : are they still bad considering PHP 5. 3 后期静态绑定(bind)?

c# - Ninject 和依赖注入(inject) WebApi 属性

java - 为什么我的应用程序放在 C :\Program Files on windows 10 but not on windows 7? 中时需要管理员权限