728x90
스프링 컨테이너의 종류
스프링에서는 1)BeanFactory와 이를 상속한 2)ApplicationContext 두 가지 유형의 컨테이너를 활용한다.
1).BeanFactory : org.springframework.beans.factory.BeanFactory
BeanFactory는 스프링 설정 파일에 등록된 <bean> 객체를 생성하고 관리하는 기본적인 컨테이너 기능을 제공한다.
이 때, 자동으로 <bean> 객체가 생성되는 것이 아니라, 사용자의 요청이 있을 때 객체가 생성되는 지연로딩(Lazy-Loaing)방식으로 작동한다.
- 지연로딩이란? Lazy Loading:
객체를 실제로 사용할 때 로딩하자는 것으로 객체를 실제로 사용할 때까지 최대한 불러오는 것을 늦춰 메모리 운용의 효율성을 높인다.
2).ApplicationContext : org.springframwork.context.ApplicationContext
ApplicationContext는 BeanFactory의 상속을 받아 <bean> 객체 관리 기능을 함과 더불어 트랜잭션 관리, 국제화가 지원되는 텍스트 메시지 관리 등의 다른 기능도 지원한다.
컨테이너 시작 시점에 <bean>클래스들을 생성하는 즉시로딩(pre-loading) 방식으로 작동한다.
대부분의 스프링 프로젝트에서 ApplicationContext 유형의 컨테이너를 사용한다.
BeanFactory와 ApplicationContext의 차이
- BeanFactory는 getBean() 메소드가 호출될 때까지 빈의 생성을 미루는데, 즉, BeanFactory는 모든 빈을
LazyLoading한다.
- ApplicationContext는 시작할 때 빈을 미리 로딩 PreLoading한다. 여러개의 객체를 만들 수 있게 설정 가능하고 따라서, 빈이 필요할 때 즉시 사용 될 수 있도록 한다.
728x90
'Spring' 카테고리의 다른 글
[스프링부트]SpringBoot에서 Thymeleaf 기본 설정 (0) | 2021.11.05 |
---|---|
[스프링부트] Spring VS SpringBoot resources 파일 위치 차이 (0) | 2021.11.04 |
Spring 컴포넌트스캔 component-scan (0) | 2021.10.21 |
[스프링 프레임워크] Spring core 중 DI와 IOC (0) | 2021.10.19 |
[spring] 스프링 프레임워크의 개념과 구조 (0) | 2021.10.18 |
댓글