使用javax.inject替换com.google.inject

56

javax.inject注解能否直接替换com.google.inject注解?

如果我用javax.inject的注解替换了所有当前使用的guice/gin注解,我的应用程序是否能够正常编译和运行?

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


3
请不要删除我的guice标签。 - Blessed Geek
3个回答

57

是的,它会很好地工作。事实上,Guice的作者Bob Lee是javax.inject规范的主导者。

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


13

实际上,我选择不切换到javax.inject,因为我发现规范与我使用的Guice提供的相比较简单:

  • @Optional,正如@Bozho所提到的
  • @ImplementedBy非常有用,当您想要减少显式绑定的数量(以提高代码清晰度)以及当您想要轻松地重写默认的@ImplementedBy绑定(例如用于集成测试)时。

可能还有其他功能,但对我来说,这两个已经足够了。



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接