• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

21.10.13 03:04 작성 조회수 96

0

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

 

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

답변 1

답변을 작성해보세요.

1

David님의 프로필

David

2021.10.13

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

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

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


.
감사합니다.