【问题标题】:Using Netbeans RCP with Google Guice将 Netbeans RCP 与 Google Guice 结合使用
【发布时间】:2011-06-19 08:15:03
【问题描述】:

我想在我的 Netbeans 平台项目中使用 Google Guice(2.0 或 3.0,没关系)。我的项目有几个 Netbeans 模块。我设法在单个 Netbeans 模块中使用 Guice,但现在我想将依赖关系从一个 NBModule 注入到另一个。这可能吗?我搜索了很多并搜索了 netbeans 和 guice 的邮件列表,但似乎没有人尝试过。

我不想为此使用 Lookup API,因为我确实需要依赖注入来进行更好的测试。

有没有人有这方面的经验?

编辑:更具体地说:我可以为所有 NBModules 使用相同的 Injector,还是必须为每个模块创建一个 Injector?

【问题讨论】:

  • 不了解 Netbeans 模块,但您不能使用带有静态变量的单例类和注入器,使其全局可用吗? (顺便说一句,每个 JUnit 测试都需要再次初始化注入器)

标签: netbeans guice rcp netbeans-platform


【解决方案1】:

我意识到这个问题很老了,但由于这个主题仍然相关,我决定分享我的发现。

我们在 Netbeans 平台项目中成功使用了 Google Guice 3.0。这包括使用一个注入器跨 NBM 注入依赖项。我们遇到的唯一问题是 Guice 无法识别其他 NBM 中的注释,因为它们是通过其他类加载器加载的。详情请见http://tkills.blogspot.com/2014/08/using-google-guice-in-netbeans-rcp.html

【讨论】:

  • 从您的博客看来,您可以通过为 javax.inject.* 创建一个包装模块来完成所有工作。在那之后有什么仍然不起作用的吗?
  • 不,在我们的项目中,这是唯一的问题。
【解决方案2】:

我没有使用过 Netbeans RCP,只使用过 Eclipse RCP 并与 Spring 集成。我们必须为每个插件提供单独的 Springs 应用程序上下文,并在所有其他插件之间共享一个根上下文。所以你需要类似的东西,每个模块都有单独的注入器。我不确定,但我认为 Guice 不支持将一个注入器作为父注入器包含到另一个注入器的概念。

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 2013-11-21
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多