2011-10-20 18 views
38

确实,javax.inject注释可以直接替代com.google.inject?因此,如果我将所有当前的guice/gin注释替换为javax.inject中的那些注释,我的应用程序将编译并运行得很好吗?用javax.inject替换com.google.inject

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

+1

请不要编辑我的guice标签。 –

回答

33

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

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

10

其实,我选择切换到javax.inject不要,因为我发现了规范相比,有什么吉斯提供了许多简约(我使用):

  • @Optional由@Bozho
  • 提到
  • @ImplementedBy当您希望减少显式绑定的数量(为了代码清晰度)以及您希望能够轻松覆盖缺省绑定(例如,用于集成测试)时,这非常有用。

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

+17

@Bozho是一个guice注释吗?开玩笑!!! –

1

这个问题是相当古老的,但... 供参考:你可以自动check that on apiwave

通过学习过去的变化,我们看到com.google.inject.Inject可以被替换为javax.inject.Inject