动态决定在Guice中注入哪个类

时间:2012-04-13 10:43:16

标签: java guice

我对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的构造函数中?

非常感谢。

1 个答案:

答案 0 :(得分:1)

将注释添加到MyClass

的构造函数中
@Inject
public MyClass(@W1 IMyWorker worker) 
{
    ....
}

这样就会注入类MyWorker1的实例。