0

嗨:我想在 Guice 用必要的参数“水合”我的班级后立即运行一项操作。这样做的惯用方法是什么?是否有 @after_running_constructor 注释...或类似的东西,我可以标记“post-guice”初始化方法?

通常,我会简单地在 init() 方法或构造函数本身中执行此操作,但事实证明,在类的构造函数运行之前,Guice 不会将必要的信息注入到我的类中。

4

2 回答 2

3

确保您的类获得所有必要的“参数”的唯一惯用方法是将这些参数传递给构造函数。在此处查看关于可变性的简短讨论。

如果由于构造涉及注入和参数化而无法使用构造函数注入,则可以使用工厂模式或AssistedInject

如果要连接某些域类,您需要了解 Guice 内部,我的猜测是应该重新审视您的方法。

于 2012-04-05T08:17:50.137 回答
1

Guice 不支持生命周期方法。这里提出了一个类似的问题,那里的人推荐了 Guice 扩展库GuiceyFruit,但我不确定该项目是否已被维护。

此外,Guice 注入的顺序在此处的文档中定义。

我很好奇,你为什么要为你的类同时进行构造函数和方法注入?我确信有一些用例,但是您可以通过仅使用构造函数注入来解决 init() 问题。

于 2012-04-05T05:16:07.597 回答