guice绑定到实例和asEagersingleton有什么区别

时间:2019-04-02 20:56:03

标签: java dependency-injection guice

当我们做

bind(ClassName).toInstance(new ClassName())  在configure方法中,我们从本质上讲是默认情况下它是“渴望初始化的单例”吗?

如果是,添加

有什么用?

bind(ClassName).toInstance(new ClassName()).asEagerSingleton()

1 个答案:

答案 0 :(得分:2)

不可能附加.asEagerSingleton()

complete signature of toInstance如下:

void toInstance(T instance)

由于toInstance(T)不返回任何内容,因此无法与.asEagerSingleton()链接。如果这样做,编译将失败。

您怀疑toInstance已经是一个急切加载的单例,这就是为什么它是链终止方法(void)而不是可以进一步限制范围的绑定声明的原因。