0

我正在编写一个命令行界面应用程序,它使用 MyBatis 和 Guice 完成的注入连接到 Oracle 数据库。

我的问题是注入嵌套类。我的班级结构看起来很像这样

MyInjector
Main
--Menu1
----Service1
----MenuA
------Service2
--------MenuAB
----------Service1
--Menu2

现在我需要我的用户在应用程序中输入他们的登录名和密码(不能在配置文件中使用),因此 Main 初始化 MyInjector,从中获取注入器对象,并使用它来注入和初始化 Menu1。问题是,一旦我进入 Menu1,它需要转到 MenuA,而 MenuA 将需要注入服务,谁知道这最终会走多远。

现在,我的第一个想法是让 MyInjector 成为一个单例类,并在需要的地方不断地获取它的实例,并获取一开始由 Main 类创建的注入器字段,但我有点好奇是否有更好的方法。

有没有更Guicey的方法来做到这一点?

4

1 回答 1

0

也许你需要的是@AssistedInject?您将参数传递给工厂方法并使用它获取顶级对象的实例。所有其他适当注释的字段都会自动注入。

于 2014-04-09T16:49:59.740 回答