
스프링 프레임워크의 핵심 컴포넌트로, 자바 객체의 생명 주기를 관리하고, 생성된 자바 객체들에게 추가적인 기능을 제공함.
자바 객체는 스프링에서 빈(Bean)이라고 함.
스프링 컨테이너는 XML기반 혹은 애노테이션 기반의 자바 설정 클래스로 생성 가능.
//스프링 컨테이너 생성
ApplicationContext applicationContext =
new AnnotationConfigApplicationContext(AppConfig.class);

스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보(AppConfig)를 사용하여 스프링 빈을 등록한다.
또한, 설정 정보를 참고해서 의존관계를 주입(DI)한다.
BeanFactory
ApplicationContext
빈 조회 테스트 코드 작성하는 부분에서 나온 예외처리
assetThrows(발생이 예상되는 예외 타입, 예외가 발생 될 수 있는 코드 블록)
@Test
@DisplayName("부모 타입으로 조회시, 자식이 둘 이상 있으면, 중복 오류가 발생한다.")
void findBeanByParentTypeDuplicate() {
assertThrows(NoUniqueBeanDefinitionException.class,
() -> ac.getBean(DiscountPolicy.class));
}
해당 코드 블록을 실행하는 중에 예외가 발생한다면 발생된 예외가 발생이 예상되는 예외의 타입과 일치하는지 아닌지를 확인.
발생된 예외 타입과 예상되는 예외 타입이 일치하면 테스트는 성공