Spring、Springboot常用注解:@Qualifier(不定时更新)

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 }
View Code

 

posted @ 2019-01-22 16:22  一个笨蛋杰  阅读(5470)  评论(0编辑  收藏  举报