BeanFactory란
- Spring의 핵심 인터페이스로 [빈의 생성 / 라이프사이클 관리 / 의존성 주입] 등을 담당
- ApplicationContext는 BeanFactory를 상속 받아 더 많은 기능을 제공
BeanFactory의 역할
- 빈 객체의 생성과 관리
- XML 또는 Java 기반의 설정 메타 데이터를 읽어 빈 객체로 생성, 빈의 생명 주기 관리
- 빈의 생성, 초기화, 소멸에 대한 관리 + 의존성 주입을 담당
- 빈 객체의 지연 로딩
- 빈이 실제로 요청될 때 객체를 생성
→ 메모리를 효율적으로 관리
- 빈이 실제로 요청될 때 객체를 생성
- 빈 객체의 설정과 프로퍼티 설정
- BeanFactory는 빈 객체의 설정 정보와 프로퍼티 값을 관리
- 설정 파일(XML or Java Config)에서 빈의 정의와 프로퍼티 값을 읽어 빈 객체를 생성하고 설정
ApplicationContext
- BeanFactory를 상속 받은 인터페이스로 애플리케이션에 대한 더 풍부한 구성 정보를 제공
- BeanFactory의 모든 기능을 포함하고 추가적인 기능 제공
- 추가 기능 : 국제화 기능 / 환경 변수 관리 / AOP 기능 통합 / 빈 자동 등록
- 스프링 공식 문서에 따르면 특별한 이유가 없을 경우 ApplicationContext 사용을 권장
BeanFactory와 ApplicationContext의 가장 큰 차이점
BeanFactory - Lazy-Loading 방식
- 요청 시에만 빈을 생성
→ 초기화 속도가 빠르지만, 빈을 요청할 때마다 인스턴스가 생성될 수 있음
ApplicationContext - Pre-Loading 방식
- 스프링 컨테이너가 로드될 때 모든 싱글톤 빈을 미리 생성
→ 빈이 많이 등록된 경우 더 유리
'Language > Spring' 카테고리의 다른 글
[Spring Boot] 이메일 인증 코드를 이용한 회원 가입 (0) | 2024.08.13 |
---|---|
[Spring Boot] 구글 이메일 인증 코드 발급 구현 (0) | 2024.08.13 |
JpaAuditing 사용 방법 및 예제 (0) | 2024.08.12 |
의존성 주입(DI), 제어의 역전(IoC) (0) | 2024.08.10 |
Spring Framework와 Spring Boot Framework (0) | 2024.08.10 |