是真的吗?Inject注释可以直接替代com.google.inject?
因此,如果我用javax中的注释替换所有当前的guice/gin注释。注入,我的应用会编译并运行良好吗?
首先,javax。注入覆盖所有的谷歌基地。注入封面吗?
是的,它会工作得很好。实际上,guice的作者(Bob Lee)是javax.inject
规范的规范领导者。
javax.inject.Inject
没有optional
属性,所以如果你想要一个可选的依赖项,你必须使用向导注释。
实际上,我选择避免切换到javax。因为我发现与Guice提供的(我使用的)相比,该规范要简单得多:
- @Bozho提到的
-
@Optional
-
@ImplementedBy
这是非常有用的,当你想要减少显式绑定的数量(为了代码清晰度),当你想要能够轻松地覆盖默认的@ImplementedBy
绑定,如果你需要(例如集成测试)。
可能还有其他的,但对我来说这两个已经是最精彩的了。
参见Guice网站上的JSR-330集成。