Eclipse RCP避免单身人士

时间:2013-09-23 16:12:48

标签: java eclipse eclipse-plugin eclipse-rcp

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

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

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

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

2 个答案:

答案 0 :(得分: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);

使用org.eclipse.e4.core.contexts.ContextInjectionFactory进行注射。

答案 1 :(得分:0)

或者,如果您仍在使用Eclipse 3应用程序,则可以使用Eclipse插件注册表来定义扩展点和扩展。这也相当于依赖注入,没有注入: - )