Spring - BeanFactory와 ApplicationContext

YUNU·2023년 8월 2일
0

스프링

목록 보기
13/33
post-thumbnail

🌱 Spring


BeanFactory & ApplicationContext

ApplicationContext는 BeanFactory를 상속

AnnotaionConfigApplicationContext는 ApplicationContext의 구현체

🟦 BeanFactory

🔹 스프링 컨테이너의 최상위 인터페이스

🔹 스프링 빈을 관리하고 조회하는 역할


🟦 ApplicationContext

🔹 BeanFactory 기능을 모두 상속받아서 제공
➡️ BeanFacotry 기능 + 부가 기능 제공
(부가 기능 -> 애플리케이션을 만들 때 필요한 공통 기능들)

🔹 MessageSource 인터페이스 제공
➡️ 국제화 기능
(접속한 국가에 따라 출력되는 언어가 다름)

🔹 EnvironmentCapable 인터페이스 제공
➡️ 환경 변수와 관련된 정보를 처리
(로컬, 개발, 운영, 스테이지 환경을 구분해서 처리)

🔹 ApplicationEventPublisher 인터페이스 제공
➡️ 이벤트를 발행하고 구독하는 모델을 편리하게 지원

🔹 ResourceLoader 인터페이스 제공
➡️ 편리한 리소스 조회
(파일, 클래스패스, 외부 등에서 파일 등을 읽어들여 내부에서 사용할 때 추상화하여 편리하게 사용할 수 있도록 지원)

BeanFacotory를 직접 사용할 일은 거의 없음
부가 기능이 포함된 ApplicationContext를 사용
BeanFactory나 ApplicationContext를 스프링 컨테이너라 함

스프링 빈 설정 메타 정보 - BeanDefinition

스프링은 다양한 설정 형식을 지원함 ex) 자바 코드, XML, Groovy 등
-> 다양한 설정 형식을 지원하는 것은 BeanDefinition 이라는 추상화 덕분

스프링 컨테이너는 BeanDefinition을 기반으로 스프링 빈 생성

스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용



인프런 스프링 핵심 원리 - 기본편 (김영한) 참조

profile
DDeo99

0개의 댓글