BeanFactory 란?

스프링 컨테이너의 최상위 인터페이스를 말한다
스프링 빈을 관리하고 조회하는 역할을 담당하고 있다 특히 조회를 할 수 있는 getBean() 메서드를 이 인터페이스가 제공하고 있다
ApplicationContext란?

ApplicationContext 이란? 우리가 실제로 사용하는 스프링 컨테이너의 표준 구현체 다
거의 스프링 컨테이너 = ApplicationContext라고 생각해도 된다
그림을 보면 ApplicationContext 인터페이스는 다른 인터페이스를 상속하고 있다
위에서 설명했던 BeanFactory를 시작해서 MessageSource , EnviromentCapabler... 등등
그런데 빈을 관리하고 검색하는 기능은 이미 BeanFactory가 제공해주는데 다른 인터페이스는 왜 필요한 걸까?
빈을 관리하는 기능도 필요하지만 Application에서 다른 수많은 부가 기능이 필요하고 그걸 제공하기 위해서 상속을 하고 있다
각각의 인터페이스를 간단하게 살펴보면 다음의 역할을 담당하고 있다
MessageSource
- 메시지 소스를 활용한 국제화 기능
- 예를 들어 한국에서 들어오면 한국어로 영어권에 들어오면 영어로 출력
환경변수
로컬, 개발, 운영 등을 구분해서 처리
애플리케이션 이벤트
이벤트를 발생하고 구독하는 모델을 편리하게 지원
편리한 리소스 조회
파일, 클래스패스, 외부 등에서 리소스를 편리하게 조회
정리하자면
ApplicationContext는 BeanFactory의 기능을 상속을 받아 빈을 관리하고 검색하는 기능을 제공 한다
뿐만 아니라 다른 인터페이스도 상속을 받아서 ApplicationContext는 빈관리 + 편리한 부가 기능을 제공한다
그리고 중요한 건 BeanFactory를 직접 사용할 일은 거의 없다 그래서 스프링 컨티에 너 = ApplicationContext라고 생각하면 된다
'🌿 스프링 > 김영한' 카테고리의 다른 글
| 4. 컴포넌트 스캔 (0) | 2026.02.08 |
|---|---|
| 3. 스프링의 싱글톤 컨테이너 (0) | 2026.02.08 |
| 1. 스프링 컨테이너와 스프링 빈 (0) | 2026.02.08 |
| 2. 서블릿 (0) | 2026.02.07 |
| 1. 웹 애플리케이션의 이해 (0) | 2026.02.07 |