Eclipse RCP避免单身人士

vac*_*uum 2 java eclipse eclipse-plugin eclipse-rcp

在RCP应用程序中使用某种DI的最简单方法是什么?我需要注册依赖项并在应用程序的不同部分使用它们:向导,对话框,属性页等.

我拥有的东西:带有大量插件的产品.

我需要的是:在Eclipse RCP产品开始时,我需要读取一些文件,将这些数据保存在内存中,并使其可以访问不同的UI元素(在不同的插件中)而不使用单例.

在创建消费者时,我无法在构造函数中传递此数据,因为消费者是通常由RCP平台创建的UI元素,我没有直接访问它们的创建.

gre*_*449 6

Eclipse 4.3支持DI.这对于作为纯Eclipse 4应用程序创建的RCP最有效,该应用程序不使用Eclipse 3兼容性代码('e4'模式).在新应用程序模型中定义的对象是使用DI创建的,但也可以使用注入创建其他对象(例如对话框).

有关Eclipse 4 RCP的介绍,请参阅http://www.vogella.com/articles/EclipseRCP/article.html

对于Eclipse 3应用程序,部件可以使用注入所需的Eclipse上下文

IWorkbenchPartSite site = part.getSite();
IEclipseContext parentContext = (IEclipseContext) site.getService(IEclipseContext.class);
Run Code Online (Sandbox Code Playgroud)

使用org.eclipse.e4.core.contexts.ContextInjectionFactory注射.