Java 在play框架中注入具有多个实现的接口

Java 在play框架中注入具有多个实现的接口,java,dependency-injection,playframework,Java,Dependency Injection,Playframework,我想使用@inject annotation注入java接口,但由于该接口有多个实现,我不知道play framework将如何解决,我试图在spring中找到类似于限定符注释的内容,但在play文档中找不到类似的内容。请让我知道如何做到这一点 interface i1 { void m1() {} } class c1 implements i1{} class c2 implements i1{} class c { @Inject i1 i; // which

我想使用@inject annotation注入java接口,但由于该接口有多个实现,我不知道play framework将如何解决,我试图在spring中找到类似于限定符注释的内容,但在play文档中找不到类似的内容。请让我知道如何做到这一点

interface i1 {
    void m1() {}
}
class c1 implements i1{}
class c2 implements i1{}

class c {
    @Inject 
    i1 i; // which instance will be injected here how to resolve this conflict.
}

播放框架使用指南:

你可以用不同的方式实现它。最简单的例子是:

一,绑定注释

如果你只需要一个实现。

二,编程绑定

如果您需要同一类的一些实现。类似于限定符。你要的那个。

代码的后面部分

@Inject @Named("c1")
i1 i;
import com.google.inject.AbstractModule;
import com.google.inject.name.Names;

public class Module extends AbstractModule {
  protected void configure() {

    bind(i1.class)
      .annotatedWith(Names.named("c1"))
      .to(c1.class);

    bind(i1.class)
      .annotatedWith(Names.named("c2"))
      .to(c2.class);
  }
}
@Inject @Named("c1")
i1 i;