• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

조회한 빈이 모두 필요할때 ( Map, List) 질문사항

21.11.05 18:15 작성 조회수 167

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가지 각 개체의 참고값을 저장한건지 모르겠습니다..ㅠㅠ

 

 

답변 2

·

답변을 작성해보세요.

0

김진영님의 프로필

김진영

질문자

2021.11.06

스프링에 제공해주는 기능이였군요.

 

감사합니다~

0

안녕하세요. 김진영님

이것은 스프링이 제공하는 특별한 기능입니다^^

스프링이 Map, List가 있으면 이것을 편리하게 해주는 것입니다. 물론 타입은 맞아야겠지요?

감사합니다.