AnnotationConfigApplicationContext의 getBean() 또는 getBeansOfType() 메소드를 이용한다.
메소드의 파라미터에 따라 타입으로 검색을 할지, 빈의 이름으로 검색할지 선택할 수 있다.
이름으로 검색하는 경우
MemberService memberService = ac.getBean("memberService", MemberService.class);
타입으로 검색하는 경우 & 한 개의 bean이 확실한 경우
MemberService memberService = ac.getBean(MemberService.class);
⚠️ 타입으로 검색 시 한 타입을 상속 받거나 구현된 클래스가 스프링 컨테이너에 여러 개 존재할경우
NoUniqueBeanDefinitionException
이 발생한다.
타입으로 검색하는 경우 & 여러 개의 bean으로 예상되는 경우
Map<String, DiscountPolicy> beansOfType = ac.getBeansOfType(DiscountPolicy.class);
NoUniqueBeanDefinitionException
이 발생한다.