使用内置的Guice Injection注释静态java.util.Logger实例的正确习惯是什么?
作者:互联网
我想开始使用Guice 3.x神奇地注入我的java.util.logging.Logger实例.
这是我要开始工作的代码片段:
@Singleton
public class Main
{
@Inject
private static final Logger logger;
...
}
这似乎不起作用.
无论我在声明中使用什么范围,我都在线程“主” java.lang.NullPointerException中得到异常.
我添加了一行super.requestStaticInjection(Main.class);到configure()方法中的模块中,它开始工作,但前提是我删除了final关键字并将其设置为静态Logger记录器.
我希望尽可能保留Logger的最终状态.
这样做的适当的惯用Guice方法是什么?
解决方法:
您可以使用以下方式在guice中注入静态属性:
class Dummy {
@Inject static Foo;
}
和
requestStaticInjection(Dummy.class);
在注入器configureModule中.
标签:java-util-logging,logging,guice,idioms,java 来源: https://codeday.me/bug/20191208/2091509.html