【问题标题】:Dynamically decide which class to inject in Guice动态决定在 Guice 中注入哪个类
【发布时间】:2012-04-13 10:43:15
【问题描述】:

我有一个关于 Guice 的问题。我有一个接口 IMyInterface,MyClass 类实现了它。

public class MyClass {
   public MyClass(IMyWorker);
}

IMyWorker 接口有两个实现者 MyWorker1 和 MyWorker2。

我得到的绑定是:

    bind(IMyInterface.class).to(MyClass.class);
    bind(IMyWorker.class).annotatedWith(W1.class).to(MyWorker1.class);
    bind(IMyWorker.class).annotatedWith(W2.class).to(MyWorker2.class);

W1 和 W2 是定义的注解。

我的问题是:当我创建一个 MyClass 的实例时,我如何指定我想将哪个 Worker 注入到 MyClass 的构造函数中?

非常感谢。

【问题讨论】:

    标签: java guice


    【解决方案1】:

    MyClass的构造函数中添加注解。

    @Inject
    public MyClass(@W1 IMyWorker worker) 
    {
        ....
    }
    

    这样MyWorker1 类的实例将被注入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多