码迷,mamicode.com
首页 > 编程语言 > 详细

Spring中 如果该Service有多个实现类,它怎么知道该注入哪个ServiceImpl类?

时间:2019-09-16 23:34:52      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:cto   teacher   interface   vat   class   rest   service   inter   man   

1.每个service的impl都可以指定名称(使用@Service(“名称”))

2.Controller中注入service的时候使用名称来指定注入哪一个。

  (1).

  @Autowired
@Qualifier("名称") 

  (2).

  @Resource(name="名称")

 

代码如下:

接口
public interface HumanService {
public String name();
}
接口实现类 
@Service("teacherService")
public class TeacherServiceImpl implements HumanService {
@Override
public String name() {
System.out.println("teacher");
return "teacher";
}
}

@Service("doctorService")
public class DoctorServiceImpl implements HumanService {
@Override
public String name() {
System.out.println("doctor");
return "doctor";
}
}
控制器 

@RestController
public class HumanController {
// @Resource(name="doctorService")
    @Autowired
@Qualifier("teacherService")
private HumanService humanService;

@RequestMapping("/name")
public String name(){
return humanService.name();
}
}
 

 

Spring中 如果该Service有多个实现类,它怎么知道该注入哪个ServiceImpl类?

标签:cto   teacher   interface   vat   class   rest   service   inter   man   

原文地址:https://www.cnblogs.com/zoe-java/p/11530888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!