用javax.inject替换com.google.inject

时间:2011-10-20 13:55:07

标签: java gwt dependency-injection guice gin

javax.inject注释是否可以作为com.google.inject的直接替换?

那么,如果我将所有当前的guice / gin注释替换为来自javax.inject的注释,我的app会编译并运行得很好吗?

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

4 个答案:

答案 0 :(得分:41)

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

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

答案 1 :(得分:11)

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

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

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

答案 2 :(得分:6)

答案 3 :(得分:4)

这个问题很老但是... 仅供参考:您可以自动check that on apiwave

通过了解过去的更改,我们发现com.google.inject.Inject可以替换为javax.inject.Inject