본문 바로가기
Spring

[Spring] 스프링 컨테이너의 특징과 종류

by Jann 2021. 10. 20.
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

댓글