1. 程式人生 > 其它 >JAVA 一個介面多個實現類

JAVA 一個介面多個實現類

spring @Qualifier

JAVA介面 TestInterface 有兩個實現類 TestInterfaceImpl1TestInterfaceImpl2
介面TestInterface:

public interface TestInterface {
    void test1();
}

實現類TestInterfaceImpl1:

@Service("t1")
public class TestInterfaceImpl1 implements TestInterface {
  @Override 
  public void test1() {
    System.out.println("實現類1test1");
  } 
  public void test2(){
    System.out.println("實現類1test2");
  } 
}

實現類TestInterfaceImpl2:

@Service("t2") 
public class TestInterfaceImpl2 implements TestInterface { 
@Override 
  public void test1() { 
    System.out.println("實現類2test1");
  } 
  public void test2(){
    System.out.println("實現類2test2"); 
  } 
}

呼叫方式:
1.通過 @Autowired@Qualifier 配合注入

@Autowired
@Qualifier("testInterfaceImpl1")
TestInterface testInterface;

2.使用 @Resource 注入,根據預設類名區分

@Resource(name = "testInterfaceImpl1")
TestInterface testInterface;

3.使用 @Resource 注入,根據 @Service 指定的名稱區分

@Resource(name = "t1")
TestInterface testInterface;