使用Guice将java延迟绑定到实例
我的模块中有以下内容:
@Override
protected void configure() {
bind(Authenticator.class).toInstance(KerberosAuthenticator.create());
}
这里绑定到实例的原因是因为Kerberos身份验证需要一些初始化,如下所示:
public static KerberosAuthenticator create() {
KerberosAuthenticator auth = new KerberosAuthenticator();
auth.start();
return auth;
}
这很有效。我特别喜欢它在没有噪音的情况下工作,就像工厂和供应商一样。。。我可以推迟创建这个实例吗。显然,create()方法是在我配置绑定时调用的。在这种情况下,创建并不昂贵,但在其他情况下,它可能是,或者,也许,甚至不需要。。。不知怎的,我在Guice文档中错过了它。。。 多谢各位
# 1 楼答案
您只需编写一个provider method:
这符合您懒散的要求,因为(从页面):
# 2 楼答案
使用提供者
绑定(Authenticator.class) .toProvider(AuthenticatorProvider.class)
检查这个
https://github.com/google/guice/wiki/ProviderBindings