모든 빈을 찾을 때 DiscountService
이러면 sout 결과 값에 빈 {} 만 출력된다 !
실제 AutoAppConfig로 지정 해줬을 때
sout 값이 리스트랑, 맵 안에 DiscountPolicy가 두개 다 찍힌다
실제 테스트 코드에서
받아온 String이름으로 discountCode를 넣어서 할인정책을 만들어준다면 테스트 다 성공하게 됨
실제 로직은
새로 만든 DIscountService는 Map으로 두개의 DiscountPolicy를 받는다. rate , Fix 둘다 !
discount()의 역할은 String 값으로 disCountCode로
fix가 넘어오면 map에서 fix를 스프링 빈을 찾아 실행,
rate가 넘어오면 map에서 rate를 스프링 빈을 찾아 실행
다형성을 활용한다 !!
동적으로 빈을 선택해야할 때 map으로 받아서 그 빈을 다형성 코드를 유지하면서 사용 가능하다!