1、@Qualifier
出現場景:
老項目中有多個實現類實現同一個接口時,或者一個項目中有多個數據源時,spring容器不知道該注入哪個實現類或者使用哪個數據源,該注解就派上用場。
1)多實現類實現同一接口

1 //接口 2 public interface MemberService { 3 public Member getMemberById(Long mid); 4 } 5 //實現類一 6 @Service("memberService1") 7 public class MemberServiceImpl1 implements MemberService{ 8 @Override 9 public Member getMemberById(Long mid){ 10 //業務代碼1 11 } 12 } 13 //實現類二 14 @Service("memberService2") 15 public class MemberServiceImpl2 implements MemberService{ 16 @Override 17 public Member getMemberById(Long mid){ 18 //業務代碼2 19 } 20 } 21 //調用類 22 @Controller("/member") 23 public class MemberController{ 24 @Autowired 25 @Qualifier("memberService2") //此處如果不使用該注解則報錯,原因就是容器不知道注入哪一個實現類 26 private MemberService memberService; 27 28 @PostMapping(value = "/getMember",produces ={MediaType..APPLICATION_JSON_VALUE}) 29 public Response getMember(Long mid){ 30 return new Response().setDate(memberService.getMemberById(mid)); 31 } 32 }