gpt4 book ai didi

java - 在 Guice 中,如何创建具有不同作用域依赖关系的 Map Binder 单例绑定(bind)?

转载 作者:行者123 更新时间:2023-11-30 06:55:49 25 4
gpt4 key购买 nike

以下 map Binder 绑定(bind)给了我一个 com.google.inject.OutOfScopeException: Not in MyScope:

mapbinder.addBinding("ferrari").to(Ferrari.class).in(Singleton.class); 

我猜测这可能是因为 Ferrari 的构造函数依赖于用 @MyScope 注释的对象。在这种情况下如何创建 Ferrari Singleton?

我知道( how to create an object from a different scope )要创建不同范围的对象,我们需要提供者。如果是这种情况,我应该在 FerrariProvider 的 get 方法中编写什么,以便它始终返回相同的 Ferrari 实例?我必须用什么方法来创建一个依赖于不同范围内的对象的 Ferrari Singleton?

最佳答案

您可以向您的提供程序添加单例注释,并将 get 方法的返回结果缓存在字段中并返回。因此每次调用提供者时,它都会返回相同的对象。您还可以注入(inject)依赖项,无论它们在您的提供程序中的范围如何。

关于java - 在 Guice 中,如何创建具有不同作用域依赖关系的 Map Binder 单例绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41845669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com