Java 在Guice中,如何创建具有不同范围依赖关系的映射绑定器单例绑定?

Java 在Guice中,如何创建具有不同范围依赖关系的映射绑定器单例绑定?,java,dependency-injection,guice,guice-3,Java,Dependency Injection,Guice,Guice 3,以下地图绑定器绑定为我提供了com.google.inject.outofscope异常:不在MyScope中: mapbinder.addBinding("ferrari").to(Ferrari.class).in(Singleton.class); 我猜这可能是因为法拉利的构造函数依赖于一个用@MyScope注释的对象。在这种情况下,我如何创建法拉利单体车 我知道()要创建不同范围的对象,我们需要提供程序。如果是这样的话,我应该在FerrariProvider的get方法中写些什么,以

以下地图绑定器绑定为我提供了com.google.inject.outofscope异常:不在MyScope中:

mapbinder.addBinding("ferrari").to(Ferrari.class).in(Singleton.class); 
我猜这可能是因为法拉利的构造函数依赖于一个用@MyScope注释的对象。在这种情况下,我如何创建法拉利单体车


我知道()要创建不同范围的对象,我们需要提供程序。如果是这样的话,我应该在FerrariProvider的get方法中写些什么,以便它总是返回与Ferrari相同的实例?我必须用什么方法创建一个法拉利单例,它取决于不同作用域中的对象?

您可以将单例注释添加到您的提供程序中,并将get方法返回的结果缓存在字段中,然后返回该结果。因此,每次调用提供程序时,它都将返回相同的对象。您还可以注入依赖项,而不管它们在提供程序中的作用域如何