스프링 컨테이너를 구성하는 BeanFactory와 ApplicaionCotext에 대해 간단히 짚어본다.
스프링 컨테이너
우리는 일반적으로 ApplicaionContext를 스프링 컨테이너라고 한다.
하지만, 정확히 말하면 스프링 컨테이너는 BeanFactory와 ApplicationContext로 구성된다.
BeanFactory
Bean은 스프링 컨테이너의 최상위 인터페이스로, 스프링 빈을 관리하고 조회하는 역할을 담당한다.
즉, 우리가 사용하는 getBean()은 BeanFactory에서 제공하는 기능이다.
ApplicaionContext
BeanFactory의 기능을 모두 상속받아 제공하는 인터페이스다.
BeanFactory의 빈 관리 및 검색 기능에 더해, 어플리케이션 개발에 필요한 여러 부가 기능을 제공한다.
따라서 스프링 어플리케이션을 개발할 때 실질적으로 사용하는 인터페이스는 ApplicaionContext다.
ApplicaionContext가 제공하는 부가 기능
ApplicaionContext는 국제화 기능, 환경변수 관리, 이벤트 처리 등 개발에 필요한 다양한 부가기능을 제공한다.
국제화 기능은 접속 지역에 따라 여러 언어로 서비스를 제공하는 기능,
환경변수는 로컬, 개발, 운영환경 등의 개발활경을 구분해서 처리하는 기능,
어플리케이션 이벤트 처리는 이벤트 발행 및 구독 모델 지원 등의 기능이며, 모두 비단 스프링 뿐 아니라 서비스를 개발할 때 거의 필수적으로 사용되는 주요한 기능들이다.
여기서 자세한 내용에 대해 다루진 않는다.
정리
정리하자면, BeanFactory와 ApplicaionContext에 대한 내용은 다음과 같다
- BeanFactory와 ApplicaionContext를 스프링 컨테이너라 한다.
- BeanFactory는 스프링 빈을 관리하고 조회하는 기능을 제공한다.
- ApplicationContext는 BeanFactory와 여러 인터페이스를 상속받아 (빈 관리기능 + 여러 편리한 부가 기능)을 제공한다.
- BeanFactory를 직접 사용할 일은 거의 없으며, 실질적으로 부가기능이 포함된 ApplicaionContext를 사용한다.
'[inflearn] 스프링 핵심 원리 - 기본편 > 섹션 4 - 스프링 컨테이너와 스프링 빈' 카테고리의 다른 글
4-8. BeanDefinition (0) | 2023.11.28 |
---|---|
4-7. 다양한 스프링 설정 형식 (0) | 2023.11.28 |
4-5. 스프링 빈 상속 관계 (0) | 2023.11.18 |
4-4. 동일 타입 빈 조회 (0) | 2023.11.18 |
4-3. 기본적인 스프링 빈 조회 (0) | 2023.11.09 |