영호
[Spring] BeanFactory, ApplicationContext 본문
개요
Spring은 객체지향의 장점을 살리면서 개발할 수 있는 프레임워크입니다. 객체지향 프로그래밍은 여러 객체들이 서로 의존하면서 주어진 기능을 수행합니다.
이를 위해 Spring에선 BeanFactory, ApplicationContext를 제공해 객체들을 관리해 줍니다.
BeanFactory
스프링 공식문서를 보면 "The root interface for accessing a Spring bean container." 즉, 스프링 빈에 접근하기 위한 기능들을 제공해 줍니다.
- 스프링 컨테이너의 최상위 인터페이스입니다.
- 스프링 빈을 조회, 관리하는 역할을 담당합니다.
스프링 빈 조회 시 사용되는 getBean() 메서드를 제공합니다.
그렇다면 ApplicationContext는 스프링 빈에 대해 어떤 기능을 제공하는지 알아보겠습니다.
ApplicationContext
ApplicationContext는 BeanFactory를 상속한 인터페이스입니다. BeanFactory에 더해 추가적인 기능을 제공해 줍니다.
- MessageSource인터페이스를 상속받아 국제화 기능을 제공합니다.
- 이를 활용해 특정 message가 어떤 언어로 표현할지 쉽게 설정할 수 있습니다.
- ListableBeanFactory를 상속받아 빈 관리에 대한 추가적인 기능을 제공합니다.
- getBeanDefinitionCount()
- getBeanDefinitionNames()
- 등등...
- ResourceLoader인터페이스를 상속받아 쉽게 파일을 읽어올 수 있습니다.
- ApplicationEventPublisher인터페이스를 상속받아 이벤트 프로그래밍 기능을 제공합니다.
정리
이처럼 ApplicationContext는 BeanFactory를 상속받아 추가적인 기능을 제공하기 때문에, 보통 스프링 컨테이너는 ApplicationContext를 의미한다고 합니다.
'Spring' 카테고리의 다른 글
ResponseEntity의 created(URI)는 뭘까? (feat.httpCode 201) (0) | 2023.04.24 |
---|---|
공식문서로 알아보는 IoC container (0) | 2023.04.20 |
Jdbc와 Jdbc template비교 (0) | 2023.04.20 |
[Spring JDBC] SimpleJdbcInsert로 쉽게 INSERT하기 (0) | 2023.04.12 |
[Spring] 컴포넌트 스캔 (0) | 2022.12.26 |
Comments