1

也许这是一个愚蠢的问题,但我在网上的研究没有给我答案。我想做的是在 RCP 中实现我自己的服务以向不同的视图提供数据。

我开始涉足 Eclipse 4 RCP 开发,并且之前使用 Eclipse 3.x。现在,Eclipse 3.x 实现服务的方式是通过扩展点 (org.eclipse.ui.services)。但是现在在 Eclipse 4 上,我读到该扩展点不像以前的版本那样常见。

所以我的问题是在 Eclipse 4 中实现服务的最佳实践是什么?

顺便说一句,OSGi 服务与 Eclipse 平台服务之间是否存在差异?

谢谢。

4

1 回答 1

3

如果您正在编写一个“纯”Eclipse 4 (e4) 应用程序(一个不使用 3.x 兼容性代码的应用程序),那么您将无法使用大部分org.eclipse.ui.xxx代码。扩展点仍在使用,但许多事情是由在 Eclipse 上下文中设置的对象完成的,这些对象可以通过直接注入来访问。

您仍然可以定义 OSGi 服务,通常使用声明式风格创建一个component definition file(请参阅File > New > Other > Plug-in Development > Component Definition向导)。

对于 OSGi 服务,您可以选择使用 aContextFunction来延迟创建服务实例。

或者您可以简单地将您的服务类实例放入 Eclipse 上下文中——您通常会在类的@PostContextCreate方法中这样做LifeCycle

这是一个相当广泛的主题,所以我只给出了一个简短的概述。

于 2014-02-09T18:04:48.130 回答