[Spring] Bean Factory 와 ApplicationContext

soonhankwon·2023년 9월 19일
0

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

BeanFactory

The root interface for accessing a Spring bean container

  • 스프링 컨테이너의 최상위 인터페이스입니다.
  • 스프링 빈을 관리하고 조회하는 역할을 담당합니다.
    • getBean() 을 제공한다.

ApplicationContext

Central interface to provide configuration for an application

애플리케이션에 설정을 제공하는 중심적인 인터페이스입니다.

  • Bean Factory 기능을 모두 상속받아서 제공합니다.
    • 프로그래머는 개발시 빈 관리, 조회 + 수 많은 부가기능이 필요합니다.

ApplicationContext 가 상속하고 있는 interface

ApplicationContext가 상속하고 있는 interface는 우리가 필요한 수 많은 부가기능을 제공합니다.

  • 메세지 소스를 활용한 국제화 기능 MessageSource
  • 환경변수 EnvironmentCapable
    • 로컬, 개발, 운영 등을 구분해서 처리
  • 애플리케이션 이벤트 ApplicationEventPublisher
    • 이벤트를 발행하고, 구독하는 모델을 편리하게 지원
  • 편리한 리소스 조회 ResourceLoader
    • 파일, 클래스패스, 외부 등에서 리소스를 편리하게 조회
  • BeanFactory를 직접 사용할 일은 거의 없고, 부가기능이 포함된 ApplicationContext를 사용합니다.

Reference.

  • 스프링 핵심원리 기본편 - 김영한님
  • Spring reference
profile
ProblemOverFlow

0개의 댓글