是否可以在Eclipse插件中使用Spring容器来进行DI?
我很想知道,因为我知道Eclipse会导致很多类加载问题,在插件中查找内容等等。
该插件旨在作为JAR分发。
答案 0 :(得分:1)
是的,但您需要Spring DM http://www.springsource.org/osgi
答案 1 :(得分:1)
答案是肯定的。您可以使用Spring DM,但您不必这样做。它可能更好。
我是在没有Spring DM的情况下完成的,主要关注的是类加载问题(不确定Spring DM是否解决了它们,但我想应该这样做)。假设您将Spring JAR捆绑在一个带有依赖项的单独插件中,您将需要使用调用插件的类加载器加载上下文。
示例:
插件A依赖于B.当插件A启动时,它将加载应用程序上下文,在调用此负载时,您需要执行以下操作:
Thread.currentThread().setContextClassLoader(PluginAActivator.class.getClassLoader())
因此,类的加载将在您自己的类加载器下进行。现在,您可以使用ClassPathXmlApplicationContext
从类路径加载配置XML。
一个小注意事项:默认ClassPathXmlApplicationContext
在加载时验证您的XML。您可能希望禁用它或将XML指向本地模式(而不是springframework.org上的标准Spring模式),否则,您将连接到Internet以在加载时下载模式文件并且脱机工作将失败。
答案 2 :(得分:0)
你的帖子有代码示例吗? 这将是伟大的,因为我暂时搁置了一段时间。
干杯!