ApplicationContext의 정의

Spring Bean을 관리하고 조회하는 Spring Container의 최상위 인터페이스인 BeanFactory라는 인터페이스의 기능을 모두 상속받아서 제공하는 역할을 합니다.
거기다가 추가적으로 편리한 부가기능을 더 제공합니다.

구조

image

기능

  • Bean 조회/관리 기능 getBean()등의 빈 조회나 관리를 하는 메서드를 사용 가능
  • 메시지소스를 활용한 국제화 기능
    예를 들어서 한국에서 들어오면 한국어로, 영어권에서 들어오면 영어로 출력
  • 환경변수
    로컬, 개발, 운영등을 구분해서 처리
  • 애플리케이션 이벤트
    이벤트를 발행하고 구독하는 모델을 편리하게 지원
  • 편리한 리소스 조회
    파일, 클래스패스, 외부 등에서 리소스를 편리하게 조회

사용 예시

1. XML 파일을 통해 생성된 빈 조회

ApplicationContext ac = new GenericXmlApplicationContext("appConfig.xml");
 
ac.getBean(RateDiscountPolicy.class);

2. @Configuration을 통해 생성된 빈 조회

AnnotationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
 
ac.getBean(RateDiscountPolicy.class);