spring 中接口 多實現的注入方式

1. 首先, Interface1 接口有兩個實現類 Interface1Impl1 和 Interface1Impl2

Interface1 接口:

複製代碼 public interface Interface1 { void fun1(); }

複製代碼

以下是接口的兩個實現類,請注意@service註解的使用方式,這裏給每個實現類標註了不同的名稱,方便在@Resource注入時區別注入

Interface1 接口實現類1:

複製代碼

@Service("s1")
 public class Interface1Impl1 implements Interface1 {
 @Override 
public void fun1() {
 System.out.println("接口1實現類 ...");
 } 
  public void fun2(){
  System.out.println("接口1實現類1 fun2 ...");
 } 
}

複製代碼

Interface1 接口實現類2:

複製代碼

@Service("s2") 
public class Interface1Impl2 implements Interface1 { 
@Override 
public void fun1() { 
System.out.println("接口1實現類 ...");
 } 

public void fun2(){
 System.out.println("接口1實現類2 fun2 ..."); 
} 
} 

複製代碼

2. 通過 @Autowired 和 @Qualifier 配合注入

@Autowired
@Qualifier("interface1Impl1")
Interface1 interface1;    //正常啓動

3. 使用@Resource注入,根據默認類名區分
 

@Resource(name = "interface1Impl1")
Interface1 interface1;    //正常啓動


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

@Resource(name = "s1")
Interface1 interface1;    //正常啓動

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章