-
조회한 빈이 모두 필요할 때, List, Mapspring/스프링 핵심 원리 강의 내용 정리 2023. 12. 11. 19:33
의도적으로 정말 해당 타입의 스프링 빈이 다 필요한 경우도 있다
예를 들어서 할인 서비스를 제공하는데, 클라이언트가 할인의 종류(rate, fix)를 선택할 수 있다고 가정해보자
스프링을 사용하면 소위 말하는 전략 패턴을 매우 간단하게 구현할 수 있다
코드로 확인하자로직 분석
- DiscountService는 Map으로 모든 DiscountPolicy 를 주입 받는다
이때 fixDiscountPolicy, rateDiscountPolicy 가 주입된다
- discount() 메서드는 discountCode 로 "fixDiscountPolicy" 가 넘어오면 map에서 fixDiscountPolicy
스프링 빈을 찾아서 실행한다
물론 "rateDiscountPolicy" 가 넘어오면 rateDiscountPolicy 스프링 빈을 찾아서 실행한다자료구조가 들어가니 살짝 어렵게 느껴진다
Map 구조에 객체를 자동주입 하는 과정을 자세하게 이해하지는 못했다
하지만 <String, Xxx> 인 맵에 객체를 자동주입하면, 객체의 이름이 key에 담기고 객체가 value에 담기는 것은 위 로그를
통해 확인할 수 있었다
더 자세히는 아마 실제 개발 경험을 쌓을때쯤에 알게될 것 같다
'spring > 스프링 핵심 원리 강의 내용 정리' 카테고리의 다른 글
빈 생명주기 콜백 시작 (0) 2023.12.11 자동, 수동 올바른 실무 운영 기준 (0) 2023.12.11 에노테이션 직접 만들기 (1) 2023.12.11 @Autowired 필드 명, @Qualifier, @Primary (0) 2023.12.11 조회 빈이 2개 이상 - 문제 (0) 2023.12.11