앞서 스프링 컨테이너는 BeanFactory와 ApplicationContext로 구분한다고 했습니다. 이번 포스팅에서는 BeanFactory와 ApplicationContext에 대해서 정리하겠습니다.

BeanFactory
The root interface for accessing a Spring bean container
- 스프링 컨테이너의 최상위 인터페이스입니다.
- 스프링 빈을 관리하고 조회하는 역할을 담당합니다.
ApplicationContext
Central interface to provide configuration for an application
애플리케이션에 설정을 제공하는 중심적인 인터페이스입니다.
- Bean Factory 기능을 모두 상속받아서 제공합니다.
- 프로그래머는 개발시 빈 관리, 조회 + 수 많은 부가기능이 필요합니다.
ApplicationContext 가 상속하고 있는 interface
ApplicationContext가 상속하고 있는 interface는 우리가 필요한 수 많은 부가기능을 제공합니다.
- 메세지 소스를 활용한 국제화 기능 MessageSource
- 환경변수 EnvironmentCapable
- 애플리케이션 이벤트 ApplicationEventPublisher
- 이벤트를 발행하고, 구독하는 모델을 편리하게 지원
- 편리한 리소스 조회 ResourceLoader
- 파일, 클래스패스, 외부 등에서 리소스를 편리하게 조회
- BeanFactory를 직접 사용할 일은 거의 없고, 부가기능이 포함된 ApplicationContext를 사용합니다.
Reference.
- 스프링 핵심원리 기본편 - 김영한님
- Spring reference