javax.inject 注解是否可以直接替代 com.google.inject?
因此,如果我将所有当前的 guice/gin 注释替换为 javax.inject 中的注释,我的应用程序会编译并运行得很好吗?
首先,javax.inject 是否涵盖了 google.inject 涵盖的所有基础?
javax.inject 注解是否可以直接替代 com.google.inject?
因此,如果我将所有当前的 guice/gin 注释替换为 javax.inject 中的注释,我的应用程序会编译并运行得很好吗?
首先,javax.inject 是否涵盖了 google.inject 涵盖的所有基础?
是的,它会正常工作。事实上,guice 的作者 (Bob Lee) 是该规范的javax.inject
规范负责人。
javax.inject.Inject
没有optional
属性,所以如果你想要一个可选的依赖项,你必须使用 guice 注释。
实际上,我选择避免切换到 javax.inject,因为与 Guice 提供的(我使用的)相比,我发现规范非常简约:
@Optional
正如@Bozho所提到的@ImplementedBy
当您想要减少显式绑定的数量(为了代码清晰)以及想要能够在需要时轻松覆盖默认@ImplementedBy
绑定(例如,用于集成测试)时,这非常有用。可能还有其他人,但对我来说,这两个已经是最棒的了。