@Autowired는 타입(Type)으로 조회한다. @Autowired private DiscountPolicy discountpolicy; 타입으로 조회하기 때문에, 마치 다음 코드와 유사하게 동작한다. ac.getBean(DiscountPolicy.class) 스프링 빈 조회에서 배웠듯이 타입으로 조회하면 선택된 빈이 2개 이상일 때 문제가 발생한다. (조회했을 때 존재하지 않는 타입이면 그 때도 문제 발생, 이를 피하기 위해서 "required = false"를 넣어주어야 한다.) DiscountPolicy의 하위 타입인 FixDiscountPolicy, RateDiscountPolicy 둘다 스프링 빈으로 선언해보자. @Component public class FixDiscountPolicy im..