티스토리 뷰
반응형
BeanFactory와 ApplicationContext
BeanFactory는 스프링 컨테이너를 만들어주는 가장 최 상위 인터페이스이다.
스프링 빈을 관리하고 조회하는 역할을 한다. 예시로 getBean 등 관련된 함수를 가지고있다.
우리는 보통 스프링컨테이너를 ApplicationContext라고 부른다.
ApplicationContext는 BeanFactory를 모두 상속받아서 제공해준다.
그렇다면 BeanFactory를 직접 사용하면 되지않은가? 라는 의문이 들 수 있지만,
ApplicationContext는 BeanFactory에서 상속받은 기능 말고도 다양한 기능을 한다.
아래 그림을 참고해보자
- MessageSource
- 메시지소스를 활용한 국제화 기능
- 예를들어서 한국에서 들어오면 한국어로, 영어권에서 들어오면 영어로 출력해주는 기능을 제공
- 메시지소스를 활용한 국제화 기능
- EnvironmentCapable
- 환경변수
- 로컬, 개발, 스테이지, 운영 등을 구분해서 처리해준다
- 환경변수
- ApplicationEventPublisher
- 애플리케이션 이벤트
- 이벤트를 발행하고 구독하는 모델을 편리하게 지원한다.
- 애플리케이션 이벤트
- ResourceLoader
- 편리한 리소스 조회
- 파일, 클래스패스, 외부 등에서 리소스를 편리하게 조회
- 편리한 리소스 조회
정리해보자면 ApplicationContext는 BeanFactory의 기능을 상속받았고
그 외에도 편리한 부가 기능을 제공한다.
BeanFactory를 직접 사용할 일은 거의 없다. Why? ApplicationContext가 모두 상속받아서 사용되기 때문이다.
보통 BeanFactory나 ApplicationContext를 스프링 컨테이너 라고 부른다.
반응형
'스프링의 핵심원리 > 기본편' 카테고리의 다른 글
Validation 정리중 (0) | 2022.04.16 |
---|---|
스프링컨테이너 설정 어노테이션과 XML 비교 (0) | 2022.02.26 |
스프링 빈 등록 테스트코드로 확인하기 (0) | 2022.02.26 |
스프링 빈 등록된것 테스트코드로 조회하는 방법 (0) | 2022.02.26 |
SOLID 5가지 원칙 (0) | 2022.02.18 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- map
- vscode
- mvn
- lambda
- Vue
- 스트림
- container
- java
- JPA
- webpack
- springboot
- Vuex
- 영속성 컨텍스트
- 중간연산
- ApplicationContext
- docker
- AnnotationConfigApplicationContext
- 람다
- install
- stream
- 자바8
- 최종연산
- BeanFactory
- ngnix
- 차이
- NPM
- MAC
- elasticsearch
- Intellij
- nginx
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함