[Spring] Bean과 ApplicationContext의 관계

Tuji·2023년 5월 2일
0

Spring

목록 보기
2/2

Spring IoC 컨테이너가 관리하는 자바 객체를 Bean이라고 한다.
그리고 스프링 컨테이너는 ApplicationContext이라 한다. 잘못생각하면 위 두개의 개념을 같은 것으로 오해할 수 있을 것이다. 그래서 이번 포스팅은 비슷해 보이는 Bean과 ApplicationContext의 개념을 이해하기 쉽게 정리하고 둘의 관계를 정의해볼 것이다.



"BeanFactory"

⦁ 스프링 컨테이너의 최상위 인터페이스이다.
⦁ 스프링 빈을 관리하고 조회하는 역할을 담당한다.
⦁ 'getBean()'을 제공한다.
⦁ 스프링 자체에서 제공해주는 기능은 대부분 BeanFactory가 제공하는 기능이다.

"ApplicationContext"

⦁ BeanFactory기능을 모두 상속받아서 제공한다.
⦁ Bean이 제공하는 기능들을 제외하고 실무에서 사용될 때 필요한 수많은 부가기능들을 제공해준다.


ApplicationContext가 제공해주는 부가기능들

⦁ 메세지소스를 활용한 국제화 기능
-> 예를 들어 한국에서 들어오면 한국어로, 영어권에서 들어오면 영어로 출력

⦁ 환경변수
-> 로컬, 개발, 운영등을 구분해서 처리

⦁ 어플리케이션 이벤트
-> 이벤트를 발행하고 구독하는 모델을 편리하게 지원

⦁ 편리한 리소스 조회
-> 파일, 클래스패스, 외부 등에서 리소스를 편리하게 조회



<정리>

  • ApplicationContext는 BeanFactory의 기능을 상속받는다.
  • ApplicationContext는 Bean 관리기능 + 편리한 부가 기능을 제공한다.
  • BeanFactory를 직접 사용할 일은 거의 없다. 부가기능이 포함된 ApplicationContext를 사용한다.
  • BeanFactory나 ApplicationContext를 스프링 컨테이너라 한다.



[참고문헌]
Spring 핵심원리 - 김영한 강사님

profile
BackEnd & DevOps

0개의 댓글