본문 바로가기
카테고리 없음

김영한 스프링7 조회한 빈이 모두 필요할 때

by ernest45 2024. 1. 2.

모든 빈을 찾을 때 DiscountService
이러면 sout 결과 값에 빈 {} 만 출력된다 !

 

 

실제 AutoAppConfig로 지정 해줬을 때

 

sout 값이 리스트랑, 맵 안에 DiscountPolicy가 두개 다 찍힌다

 

 

실제 테스트 코드에서

받아온 String이름으로 discountCode를 넣어서 할인정책을 만들어준다면 테스트 다 성공하게 됨

 

 

 

실제 로직은

 

새로 만든 DIscountService는 Map으로 두개의 DiscountPolicy를 받는다. rate , Fix 둘다 !

discount()의 역할은 String 값으로 disCountCode로
fix가 넘어오면 map에서 fix를  스프링 빈을 찾아 실행,

rate가 넘어오면 map에서 rate를 스프링 빈을 찾아 실행

 

다형성을 활용한다 !!

 

동적으로 빈을 선택해야할 때 map으로 받아서 그 빈을 다형성 코드를 유지하면서 사용 가능하다!