我正在编写一个命令行界面应用程序,它使用 MyBatis 和 Guice 完成的注入连接到 Oracle 数据库。
我的问题是注入嵌套类。我的班级结构看起来很像这样
MyInjector
Main
--Menu1
----Service1
----MenuA
------Service2
--------MenuAB
----------Service1
--Menu2
现在我需要我的用户在应用程序中输入他们的登录名和密码(不能在配置文件中使用),因此 Main 初始化 MyInjector,从中获取注入器对象,并使用它来注入和初始化 Menu1。问题是,一旦我进入 Menu1,它需要转到 MenuA,而 MenuA 将需要注入服务,谁知道这最终会走多远。
现在,我的第一个想法是让 MyInjector 成为一个单例类,并在需要的地方不断地获取它的实例,并获取一开始由 Main 类创建的注入器字段,但我有点好奇是否有更好的方法。
有没有更Guicey的方法来做到这一点?