Tho*_*sen 1 java debugging guice
我们有一个Swing应用程序,我们想添加一点依赖注入使用Guice-3.0.我们的理由是将旧工厂迁移到更灵活的地方.
我确保应用程序在一个注入器中运行,我们现在希望有一个类向下有一些字段@Inject'ed,并且在我未经训练的眼睛看来,当这个类的@Inject注释被忽略时" 在跑.
现在的问题是,如果我已经正确理解了第一次在Guice注入器内运行时新的类被保证有其@Inject注释,或者如果在你的代码中有一个或多个new之后这个属性丢失了.
换一种说法:
给定A从Guice获取B的实例,然后B然后创建new C()哪个依次运行new D(),并且D碰巧有@Inject的内部,应该由Guice处理?
如果是的话,我怎样才能在我的Guice配置中添加代码,让我看到Guice正在处理"新的X()"并且正在执行"@Inject setY(Y y)"?我不介意这个日志是否会非常大 - 我只需要验证Guice是否按照我的预期运行.
不,没有new直接创造的东西由Guice处理......它不会做魔术.Guice的工作方式是它为你创建对象图.您不应该引用Injector类中的内容,也不应该使用它new来创建您想要注入的服务.
以下是您可能拥有的一些选项:
C入B而不是new荷兰国际集团它.注入D到C.new,请注入Provider<C>或Provider<D>改为使用get()而不是new.CFactory或DFactory代替a Provider.injector.injectMembers(Object)用来注入你创造的对象new......但很难说如果你这样做,Guice会帮助你多少.