♪ 학습 내용
조회되는 동일 타입의 빈 모두 필요 할 경우 / 자동 또는 수동 빈 운영 기준
* 조회 빈 모두 이용
스프링 컨테이너에 등록된 빈 중 동일 타입이 있을 경우 오류 발생.
전 학습에서 우선순위를 두거나 고르는 방식으로 하나를 골라 조회했었다.
이번에는 조회되는 빈 모두를 이용..!
List 와 Map 을 이용해본다
Map<>은 key 값으로 스프링 빈 이름이, value 값으로 DiscountPolicy 타입의 스프링 빈이 담아진다
(rateDiscountPolicy, fixDiscountPolicy 가 담아지겠지 ? )
생성자 의존관계 주입 이용( 생성자가 하나이므로 @Autowired 지워도 똑같다 )
discountCode로 넘어오는 스프링 빈 이름으로 빈을 찾고,
해당 객체의 discount() 메서드를 이용해 할인금액 반환!!
다음의 경우
new AnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class);
파라미터 둘 다 스프링 빈으로 등록된다
결과로는 정상 실행된다
코드를 보면 구현에 의존하지 않고 역할에 의존하여 기존의 다형성을 지켜내고,
동적으로 빈을 가져다 사용할 수 있기 때문에 Good이다.
* 자동 빈? 수동 빈?
점점 자동을 선호하는 추세.
자동으로 할 시에 @Component 붙여주면 끝나지만 수동으로 하면 설정정보에 들어가서 @Bean, 의존관계 주입 등등
해야할 일이 많아짐.
지금이야 스프링 빈 등록을 몇개 안하고 있으니 그렇다고 하지만,
나중 가서 1000개, 1억개의 스프링 빈을 등록해야한다면? 골치 아플 듯 ㅋㅋ
그리고 자동으로 등록해도 객체 지향의 DIP와 OCP 유지된다.
수동 빈은 주로 기술 지원 로직에서! 수동 빈 등록 == 명확하게 드러낸다
♪ 다음 학습 내용
빈 생명주기 콜백
'Dev > Spring' 카테고리의 다른 글
[Spring 기본] 빈 스코프 (1) (0) | 2022.11.25 |
---|---|
[Spring 기본] 빈 생명주기 콜백 (0) | 2022.11.22 |
[Spring 기본] 의존관계 자동 주입 (3) (0) | 2022.11.19 |
[Spring 기본] 의존관계 자동 주입 (2) (0) | 2022.11.18 |
[Spring 기본] 의존관계 자동 주입 (1) (0) | 2022.11.13 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!