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

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

스프링링님의 프로필 이미지
스프링링

작성한 질문수

스프링 핵심 원리 - 기본편

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

빈에는 4개가 등록되어 있는 것이 맞나요?

작성

·

142

0

AutoConfig.class 내 @Component가 붙어있는 "FixDiscountPolicy"와 "RateDiscountPolicy" 이렇게 두개와 DiscountService.class 내 List와 Map 두가지 모두 빈으로 들어오는게 맞나요?

 

맞다면 만약 실제로 Map을 쓰겠다고 마음을 먹게되면 List는 만들지 않을 것이고, 다만 "FixDiscountPolicy"와 "RateDiscountPolicy" 이 두가지는 중복되게 빈을 생성해주어야 하는 것인가요?? 굳이 중복되는 리소스를 낭비해가면서 저장한 Map으로 조회된 빈이 모두 필요한 경우가 있나요?

답변 1

1

안녕하세요. 스프링링님, 공식 서포터즈 David입니다.

.
DiscountService 내 List, Map이 빈으로 등록되는 것은 아닙니다. List, Map에 지정된 타입을 보고 해당 타입에 부합하는 빈을 컨테이너로부터 주입받게 됩니다.  따라서 중복되게 빈을 생성하는게 아닙니다.

강의 내용 중 로그를 보시면 Map, List에 각각 들어간 FixDiscountPolicy 객체의 참조값이 일치합니다. 이는 스프링 컨테이너로부터 동일한 싱글톤 빈을 주입받았음을 알 수 있습니다.


.
감사합니다.

스프링링님의 프로필 이미지
스프링링

작성한 질문수

질문하기