javax.inject注释是否可以作为com.google.inject的直接替换?
那么,如果我将所有当前的guice / gin注释替换为来自javax.inject的注释,我的app会编译并运行得很好吗?
首先,javax.inject是否覆盖了google.inject所涵盖的所有基础?
答案 0 :(得分:41)
是的,它会正常工作。实际上,guice的作者(Bob Lee)是javax.inject
规范的规范引导。
javax.inject.Inject
没有optional
属性,因此如果您想要一个可选的依赖项,则必须使用guice注释。
答案 1 :(得分:11)
实际上,我已经选择不转换到javax.inject,因为我发现规范与Guice提供的(我使用的)相比非常简约:
@Optional
@ImplementedBy
,当您希望减少显式绑定的数量(代码清晰度)以及希望能够在需要时轻松覆盖默认的@ImplementedBy
绑定时非常有用(例如,用于集成测试)。可能有其他人,但对我来说,这2个已经是showstoppers。
答案 2 :(得分:6)
答案 3 :(得分:4)
这个问题很老但是... 仅供参考:您可以自动check that on apiwave。
通过了解过去的更改,我们发现com.google.inject.Inject
可以替换为javax.inject.Inject
。