我正在尝试牙签 DI 库,但我似乎错过了一些重要的东西。
我在 github上创建了以下测试项目,我尝试为我的理解问题创建一个尽可能小的用例。
在那里你会找到ApplicationModule我尝试在我的“根”模块中注入我需要的一切。如您所见,我有两次,scope.installModules(module)
因为我PlainPojo
取决于Application
实例。如果我不进行第一次installModule
调用,则范围内没有应用程序实例。正如评论中提到的,我可以将应用程序实例作为参数传递,但我认为我可以在使用 DI 时删除它们?
引起麻烦的第二个类是SimpleTest类。如果我不调用inject()
构造函数中的方法,则不会注入PlainPojo成员。我还尝试在绑定 PlainPojo 后第三次使用installModules()
,ApplicationModule
但这无济于事。
假设@Inject
成员上的 an 足以在范围内可用时自动注入它并且绑定顺序足以使以前的绑定可用而无需在两者之间安装(如在 中完成ApplicationModule
),我是否如此错误?
如果我可以提供更多信息以使我的问题易于理解,请发表评论。
提前致谢!