嗨:我想在Guice用必要的参数“保湿”我的班级后立即进行操作。这样做的惯用方法是什么?是否有@after_running_constructor注释...或类似的东西,我可以标记“post-guice”初始化方法?
通常,我只是在init()方法或构造函数本身中执行此操作,但事实证明,在运行类的构造函数之前,Guice不会将必要的信息注入到我的类中。
答案 0 :(得分:3)
确保您的类获得所有必需“参数”的唯一惯用方法是将这些参数传递给构造函数。 请参阅有关可变性的简短讨论here。
如果您无法使用构造函数注入,因为构造涉及注入和参数化,您可以使用工厂模式,或AssistedInject。
如果要连接一些域类,你需要了解Guice内部,我的猜测是你的方法应该重新访问。
答案 1 :(得分:1)
Guice不支持生命周期方法。类似的问题被问到here,那里的人推荐了Guice扩展库GuiceyFruit,但我不确定项目是否会继续维护。
此外,Guice注入的顺序在文档here中定义。
我很好奇,你为什么要为你的班级做构造函数和方法注入?我确定有一些用例,但你可以通过简单地使用构造函数注入来解决init()问题。