是否可以在Eclipse插件中使用Spring?

时间:2009-02-05 02:36:17

标签: eclipse spring plugins

是否可以在Eclipse插件中使用Spring容器来进行DI?

我很想知道,因为我知道Eclipse会导致很多类加载问题,在插件中查找内容等等。

该插件旨在作为JAR分发。

3 个答案:

答案 0 :(得分:1)

是的,但您需要Spring DM http://www.springsource.org/osgi

答案 1 :(得分:1)

答案是肯定的。您可以使用Spring DM,但您不必这样做。它可能更好。

我是在没有Spring DM的情况下完成的,主要关注的是类加载问题(不确定Spring DM是否解决了它们,但我想应该这样做)。假设您将Spring JAR捆绑在一个带有依赖项的单独插件中,您将需要使用调用插件的类加载器加载上下文。

示例:

  • 插件A - 您的功能插件
  • 插件B - 导出spring包的Spring lib插件

插件A依赖于B.当插件A启动时,它将加载应用程序上下文,在调用此负载时,您需要执行以下操作:

Thread.currentThread().setContextClassLoader(PluginAActivator.class.getClassLoader())

因此,类的加载将在您自己的类加载器下进行。现在,您可以使用ClassPathXmlApplicationContext从类路径加载配置XML。

一个小注意事项:默认ClassPathXmlApplicationContext在加载时验证您的XML。您可能希望禁用它或将XML指向本地模式(而不是springframework.org上的标准Spring模式),否则,您将连接到Internet以在加载时下载模式文件并且脱机工作将失败。

答案 2 :(得分:0)

你的帖子有代码示例吗? 这将是伟大的,因为我暂时搁置了一段时间。

干杯!