javax.inject注解能否直接替换com.google.inject注解?
如果我用javax.inject的注解替换了所有当前使用的guice/gin注解,我的应用程序是否能够正常编译和运行?
首先,javax.inject是否涵盖了google.inject所涵盖的所有方面?
javax.inject注解能否直接替换com.google.inject注解?
如果我用javax.inject的注解替换了所有当前使用的guice/gin注解,我的应用程序是否能够正常编译和运行?
首先,javax.inject是否涵盖了google.inject所涵盖的所有方面?
是的,它会很好地工作。事实上,Guice的作者Bob Lee是javax.inject
规范的主导者。
javax.inject.Inject
没有optional
属性,因此如果您需要可选依赖项,则必须使用guice注释。
实际上,我选择不切换到javax.inject,因为我发现规范与我使用的Guice提供的相比较简单:
@Optional
,正如@Bozho所提到的@ImplementedBy
非常有用,当您想要减少显式绑定的数量(以提高代码清晰度)以及当您想要轻松地重写默认的@ImplementedBy
绑定(例如用于集成测试)时。可能还有其他功能,但对我来说,这两个已经足够了。