我的应用程序中有两个绑定类型的命名实例:
bind(Foo.class).toProvider(FooProvider.class);
bind(Foo.class).annotatedWith(Names.named("prime")).toProvider(FooPrimeProvider.class);
我有一个类,希望每个类使用一个实例。由于技术原因,此类不能直接注入实例,它必须向实例注入提供程序:
class Bar {
@Inject static Provider<Foo> fooProvider;
@Inject @Named("prime") static Provider<Foo> fooPrimeProvider; // WRONG!
}
问题是,上面的FooPrime注入不是注入名为“prime”的实例,而是注入名为“prime”的提供者,这当然不是我想要的。
如何让Guice为名为“prime”的Foo实例注入一个提供程序?
我刚刚写了一个测试,它完全符合你的要求:https://gist.github.com/jangalinski/4943871
这是一个奇怪的用例,我需要一些帮助来弄清楚如何相互结合使用辅助/提供者/FactoryModuleBuilders。忽略的缺失。这只是一个例子。 属于我无法更改的库的一组特征具有以下模式。它使用蛋糕图案。 由于这些特征不能被直接注入,我创建了一个允许它们被注入的包装器 在我的代码中,我有一个依赖于服务的控制器,而服务又依赖于库。根据控制器的需要,服务应能够使用“BB”或“CC”。组件如下所示 我将
如果我创建一个提供者并将其绑定到一个类,就像这样 然后
问题内容: 我正在做一个很大的项目,有很多注入。当前,我们正在使用一个类,该类为需要一次的每次注入实现,并且它们大多具有一个行方法。 每当我需要一个新的提供程序时,创建一个新的类就变得很烦人。使用提供程序类比使用方法有什么好处,反之亦然? 问题答案: 据我所知,它们在大多数简单情况下是完全等效的。 无论哪种样式,即使键绑定到类或实例,Guice都可以让您注入和。如果直接获取实例,Guice会自动调
我有一个Guice,它的构造函数接受注入的参数: 现在,我希望能够注入参数取决于我运行此参数的环境。在测试中,我想注入一个 MyConfiguration 对象,而在生产中,我想注入另一个对象。 我有两个MyConfiguration提供程序。MyConfigurationProvider读取外部配置文件并从那里获取配置。MyConfigurationTestProvider只是对所有设置进行硬编
我需要一个关于如何使用Google-guice为服务的多个实现编写代码的建议。下面是示例 因为Guice不允许将一个类型绑定到多个实现,因为下面的代码会导致错误 我们可以用下面的命名注释来解决这个问题 但我工作的应用程序是这样的。我们在init()方法中绑定所有模块并创建注入器模块: 但是通过上述过程,我可以将一个实现类绑定到接口(服务类) 你能给我提供一个方法来与供应商合作吗。我想在下面这样做
问题内容: 我做错了什么? 根据文件,我应该能够注入到......但我得到一个错误- “未知供应商” http://jsfiddle.net/g26n3/ 实际上,我在这里有三个问题… 1)如何注入模块的配置。 2)如何向模块配置注入相同的提供程序()。 3)如果我将相同的提供程序注入到两个模块的配置中,它将是相同的提供程序实例,还是两个不同的实例? 谢谢! 问题答案: 您需要添加“ Provid