인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Ahrisan님의 프로필 이미지
Ahrisan

작성한 질문수

스프링 핵심 원리 - 기본편

조회한 빈이 모두 필요할 때, List, Map

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

작성

·

287

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

Ahrisan님의 프로필 이미지
Ahrisan
질문자

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

 

감사합니다~

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 김진영님

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

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

감사합니다.

Ahrisan님의 프로필 이미지
Ahrisan

작성한 질문수

질문하기