用javax.inject替换com.google.inject

Ble*_*eek 47 java gwt gwt-gin dependency-injection guice

javax.inject注释是否可以作为com.google.inject的直接替换?

所以,如果我用javax.inject替换所有我当前的guice/gin注释,我的应用程序将编译并运行得很好?

首先,javax.inject是否覆盖了google.inject所涵盖的所有基础?

Boz*_*zho 42

是的,它会正常工作.实际上,guice的作者(Bob Lee)是该规范的规范引导者javax.inject.

javax.inject.Inject没有optional属性,所以如果你想要一个可选的依赖,你必须使用guice注释.


jfp*_*ret 11

实际上,我已经选择不转换到javax.inject,因为我发现规范与Guice提供的内容(我使用的)相比非常简约:

  • @Optional 如@Bozho所述
  • @ImplementedBy当你想减少显式绑定的数量(代码清晰度)以及你希望能够在需要时轻松覆盖默认@ImplementedBy绑定(例如集成测试)时,这非常有用.

可能有其他人,但对我来说这两个已经是showstoppers.