在嵌套类CLI App上注入Guice

时间:2014-04-09 16:03:51

标签: guice guice-3

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

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

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

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

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

是否有更多Guicey方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

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