55

javax.inject 注解是否可以直接替代 com.google.inject?

因此,如果我将所有当前的 guice/gin 注释替换为 javax.inject 中的注释,我的应用程序会编译并运行得很好吗?

首先,javax.inject 是否涵盖了 google.inject 涵盖的所有基础?

4

3 回答 3

54

是的,它会正常工作。事实上,guice 的作者 (Bob Lee) 是该规范的javax.inject规范负责人。

javax.inject.Inject没有optional属性,所以如果你想要一个可选的依赖项,你必须使用 guice 注释。

于 2011-10-20T13:57:44.560 回答
13

实际上,我选择避免切换到 javax.inject,因为与 Guice 提供的(我使用的)相比,我发现规范非常简约:

  • @Optional正如@Bozho所提到的
  • @ImplementedBy当您想要减少显式绑定的数量(为了代码清晰)以及想要能够在需要时轻松覆盖默认@ImplementedBy绑定(例如,用于集成测试)时,这非常有用。

可能还有其他人,但对我来说,这两个已经是最棒的了。

于 2011-10-21T15:47:51.717 回答
7

请参阅Guice 网站上的 JSR-330 集成

于 2011-10-23T11:02:18.530 回答