Spring 에서 이 서비스 에 여러 개의 실현 류 가 있다 면 어떤 ServiceImpl 류 를 주입 해 야 하 는 지 어떻게 압 니까?

1083 단어 자바springboot
모든 서비스의 impl 은 이름 을 지정 할 수 있 습 니 다 (@ Service 사용 ("이름").
2. Controller 에 서 비 스 를 주입 할 때 이름 을 사용 하여 어느 것 을 주입 할 지 지정 합 니 다.
(1)
  @Autowired        @예선 ("이름") (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();
    }
}

좋은 웹페이지 즐겨찾기