用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
取代。