如果我有这样的模块:
public class MyModule extends AbstractModule {
@Override
public void configure() {
bind(WhatsThis.class).to(AnAppleOfGold.class);
bind(TellMeYourName.class).to(Bosse.class);
}
@Provides
public AnAppleOfGold providesApple() {
return new AppleOfGold(providesFizz());
}
@Provides
public Bosse providesBosse() {
return new Bosse("Grab a hold of my beard", providesFizz());
}
@Provides @Singleton
public Fizz providesFizz() {
return new Fizz(Math.random());
}
}
每次 Guice 分别使用providesApple
andprovidesBosse
注入AnAppleOfGold
和Bosse
对象时,它们是否会得到相同的 Fizz 单例实例?换句话说,Guice 是否尊重提供方法之间的范围,还是仅尊重Scopes.SINGLETON
来自模块“外部”(DI 客户端代码)的范围(在这种情况下,)?提前致谢。