用javax.injectreplacecom.google.inject

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

所以,如果我用javax.inject中所有当前的guice / gin注释replace掉了我的应用程序,那么我的应用程序就可以编译并运行了。

首先,javax.inject覆盖了google.inject覆盖的所有基础吗?

是的,它会正常工作。 实际上,guice(Bob Lee)的作者是javax.inject规范的spec-lead。

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

实际上,我select不要切换到javax.inject,因为我觉得这个规范与Guice提供的(我使用的)相比极其简单:

  • @Optional提到@可选
  • @ImplementedBy当你想减less显式绑定的数量(为了代码的清晰度),以及当你想能够轻易地覆盖默认的@ImplementedBy绑定(如集成testing)时,这是非常有用的。

有可能是其他人,但对我来说,这两个已经是showstoppers。

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

这个问题是相当古老的,但只… … FYI:你可以自动检查在apiwave 。

通过学习过去的变化,我们看到com.google.inject.Inject可以被javax.inject.Inject取代。