21.11.05 18:15 작성
·
251
0
static class DiscountService {
private final Map<String, DiscountPolicy> policyMap;
// map으로 모든 DiscountPolicy 하위 구현체들 주입받기
@Autowired
public DiscountService(Map<String, DiscountPolicy> policyMap) {
this.policyMap = policyMap;
}
}
DiscountPolicy의 구현체에는 fixDiscountPolicy, RateDiscountPolicy가 존재합니다.
Map을 이용해서 이 두가지 구현체를 모두 주입 받는 방법이 강의내용이였는데, 어떤 원리로 이게 다 주입되었는지 모르겠습니다.
단순히 Map, List처럼 배열(?) 자료형으로 DiscountPolicy(인터페이스)를 주입받으면 스프링에서 알아서 모두 주입해주는것인가요?
질문 내용을 정리하지면,
생성자를 통해서 주입한 policyMap변수에 어떻게 2가지 객체가 주입되었는지 모르겠고, 자세히는 Map의 String 키값이 어떻게 빈이름으로 저장되고, 벨류가 2가지 각 개체의 참고값을 저장한건지 모르겠습니다..ㅠㅠ