스프링 컨테이너

yseo14·2023년 7월 1일

Spring

목록 보기
2/7

스프링 컨테이너란?

스프링 프레임워크의 핵심 컴포넌트로, 자바 객체의 생명 주기를 관리하고, 생성된 자바 객체들에게 추가적인 기능을 제공함.

자바 객체는 스프링에서 빈(Bean)이라고 함.

스프링 컨테이너는 XML기반 혹은 애노테이션 기반의 자바 설정 클래스로 생성 가능.

//스프링 컨테이너 생성
ApplicationContext applicationContext =
                            new AnnotationConfigApplicationContext(AppConfig.class);

스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보(AppConfig)를 사용하여 스프링 빈을 등록한다.
또한, 설정 정보를 참고해서 의존관계를 주입(DI)한다.


BeanFactory와 ApplicationContext

  • BeanFactory

    • 스프링 컨테이너의 최상위 인터페이스
    • 스프링 빈을 관리하고 조회하는 역할
    • 'getBean()'을 제공함.
  • ApplicationContext

    • BeanFactory 기능을 모두 상속받아 사용
    • 애플리케이션을 개발할 때는 빈은 관리하고 조회하는 기능은 물론 수 많은 부가 기능이 필요함
      -> 즉, 빈 관리기능 + 편리한 부가 기능 제공

예외 처리

빈 조회 테스트 코드 작성하는 부분에서 나온 예외처리
assetThrows(발생이 예상되는 예외 타입, 예외가 발생 될 수 있는 코드 블록)

@Test
    @DisplayName("부모 타입으로 조회시, 자식이 둘 이상 있으면, 중복 오류가 발생한다.")
    void findBeanByParentTypeDuplicate() {
        assertThrows(NoUniqueBeanDefinitionException.class,
                () -> ac.getBean(DiscountPolicy.class));
    }

해당 코드 블록을 실행하는 중에 예외가 발생한다면 발생된 예외가 발생이 예상되는 예외의 타입과 일치하는지 아닌지를 확인.
발생된 예외 타입과 예상되는 예외 타입이 일치하면 테스트는 성공

profile
like the water flowing

0개의 댓글