【问题标题】:Guice dependency injection choosing one of two implementations based on configurationGuice 依赖注入根据配置选择两种实现之一
【发布时间】:2014-08-03 21:31:22
【问题描述】:

我的服务接口有两个实现,

public interface Service {
   public ServiceResponse get();
}

一个是 Mock 实现,它返回一个存根的 ServiceResponse,另一个对一些不可用的下游服务做一些实际的工作。

虽然我的 RealService 和 MockService 都准备好了,但我只能使用模拟。我希望根据环境变量注入该实例。我的问题是如何实现这一目标?

谢谢

【问题讨论】:

  • 使用 spring,我可以使用组件扫描来配置它,提供包含 mock 的包——因此我的 Mock 实现被注入。

标签: java dependency-injection guice


【解决方案1】:

您可以实现 Guice Provider 接口,该接口访问环境变量以确定要提供的实例。然后通过ProviderBindings 使注入使用这个提供者。

【讨论】:

  • 谢谢唐。我在 Provider 中注入了 Injector —— Provider get() 检查条件并返回 injector.getInstance(conditionMet ? Real.class : Mock.class)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-11
  • 1970-01-01
相关资源
最近更新 更多