使用内置的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-将多个接口自动绑定到Guice中的一个impl


下一篇:Array.prototype.find 数组find方法