我想开始使用 Guice 3.x 神奇地注入(inject)我的 java.util.logging.Logger
实例。
这是我尝试开始工作的一段代码:
@Singleton
public class Main
{
@Inject
private static final Logger logger;
...
}
这似乎行不通。
无论我在声明中使用什么范围,我都会得到 Exception in thread "main"java.lang.NullPointerException
。
我在 configure()
方法中将行 super.requestStaticInjection(Main.class);
添加到我的 module
并且它开始工作,但前提是我删除 final
关键字并使其成为 static Logger logger
。
如果可能的话,我宁愿保留 Logger final
。
执行此操作的正确惯用 Guice 方法是什么?
最佳答案
您可以使用例如 guice 注入(inject)静态属性
class Dummy {
@Inject static Foo;
}
和
requestStaticInjection(Dummy.class);
在注入(inject)器配置模块中。
关于java - 使用内置的 Guice 注入(inject)来注释静态 java.util.Logger 实例的正确习惯用法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5902817/