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

이연희·2022년 7월 7일
0

Spring

목록 보기
73/105

조회한 빈이 모두 필요한 경우

사용자가 FixDiscountPolicy, RateDiscountPolicy 중 할인 정책을 선택할 수 있을 때 조회한 빈이 모두 필요한 상황이다. 아래 코드에서 Map을 사용해서 두개의 빈을 모두 가져와 저장해두고, discount() 메서드에서 DiscountPolicy 타입으로 조회 후 Map에 저장된 할인 정책을 꺼내어 할인을 적용하고 결과값을 반환한다.

static class DiscountService {
    private final Map<String, DiscountPolicy> policyMap;
    private final List<DiscountPolicy> policies;
    @Autowired
    public DiscountService(Map<String, DiscountPolicy> policyMap, List<DiscountPolicy> policies) {
        this.policyMap = policyMap;
        this.policies = policies;
        System.out.println("policyMap = " + policyMap);
        System.out.println("policies = " + policyMap);
    }
    public int discount(Member member, int price, String discountCode) {
    	DiscountPolicy discountPolicy = policyMap.get(discountCode);
    	return discountPolicy.discount(member, price);
	}
}
profile
공부기록

0개의 댓글