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

Ena JJJ·2023년 1월 27일
0

Spring

목록 보기
18/44

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

의도적으로 정말 해당 타입의 스프링 빈이 다 필요한 경우도 있다. 예를 들어서 할인 서비스를 제공하는데, 클라이언트가 할인의 종류(rate,fix)를 선택할 수 있다고 가정해보자. 스프링을 사용하면 소위 말하는 전략 패턴을 매우 간단하게 구현할 수 있다.

로직 분석

  • DiscountService는 Map으로 모든 'DiscountPolicy'를 주입받는다. 이때 'fixDiscountPolicy','rateDiscountPolicy'가 주입된다.
  • 'discount()'메서드는 discountCode로 'fixDiscountPolicy'스프링 빈을 찾아서 실행한다.

주입분석

-'Map<String,DiscountPolicy>': map키에 스프링 빈의 이름을 넣어주고, 그 값으로 'DiscountPolicy'타입으로 조회한 모든 스프링 빈을 담아준다.

  • 'List<\DiscountPolicy>': 'DiscountPolicy'타입으로 조회한 모든 스프링 빈을 담아준다.
  • 만약 해당하는 타입의 스프링 빈이 없으면, 빈 컬렉션이나 Map을 주입한다.

출처:https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

0개의 댓글