반응형
SMALL
Container란?
- 객체의 생성, 사용, 소멸에 해당하는 라이프사이클을 담당
- 라이프 사이클을 기본으로 애플리케이션 사용에 필요한 주요 기능을 제공
Container 기능
- 라이프사이클 관리
- Dependency 객체 제공
- Thread 관리
- 기타 애플리케이션 실행에 필요한 환경
Container 필요성
- 비즈니스 로직 외에 부가적인 기능들에 대해서는 독립적으로 관리되도록 하기 위함이다.
- 서비스 look up이나 Configuration에 대한 일관성을 갖기 위함이다.
- 서비스 객체를 사용하기 위해 각각 Factory 또는 Singleton 패턴을 직접 구현하지 않아도 된다.
IoC Container
- 오브젝트의 생성과 관계 설정, 사용, 제거 등의 작업을 애플리케이션 코드 대신 독립된 컨테이너가 담당한다.
- 컨테이너가 코드 대신 오브젝트에 대한 제어권을 갖고 있어 IoC라고 부른다.
- 이런 이유로, 스프링 컨테이너를 IoC 컨테이너라고 부르기도 한다.
- 스프링에서 IoC를 담당하는 컨테이너에는 BeanFactory, ApplicationContext가 있다.
Spring DI Container
- Spring DI Container가 관리하는 객체를 빈(Bean)이라 하고, 이 빈들의 생명주기(Life-Cycle)를 관리하는 의미로 빈팩토리(BeanFactory)라 한다.
- Bean Factory에 여러 가지 컨테이너 기능을 추가하여 ApplicationContext라 한다.
↑ <<Interface>>
BeanFactory- Bean을 등록, 생성, 조회, 반환 관리한다. (Bean 객체를 만들어주는 공장)
- 일반적으로 BeanFactory보다는 이를 확장한 ApplicationContext를 사용한다.
* 2.x대 버전까지: BeanFactory 사용, 3.x대 버전부터: ApplicationContext 사용
- getBean() method가 정의되어 있다.<<Interface>>
ApplicationContext- Bean을 등록, 생성, 조회, 관리 기능은 BeanFactory와 같다.
- Spring의 각종 부가 서비스를 추가로 제공한다.
- Spring이 제공하는 ApplicationContext 구현 클래스는 여러 가지 종류가 있다.
BeanFactory & ApplicationContext
Spring Container
↑ <<Interface>>
BeanFactory- 빈(Bean) 객체에 대한 생성과제공을 담당
- 단일 유형의 객체를 생성하는 것이 아니라, 여러 유형의 빈을 생성, 제공
- 객체간의 연관 관계를 설정, 클라이언트의 요청 시 빈을 생성
- 빈의 라이프 사이클을 관리<<Interface>>
ApplicationContext- BeanFactory가 제공하는 모든 기능 제공
- 엔터프라이즈에 애플리케이션을 개발하는데 필요한 여러 기능을 추가함
- I18N, 리소스 로딩, 이벤트 발생 및 통지
- 컨테이너 생성 시 모든 빈 정보를 메모리에 로딩함<<Interface>>
WebApplicationContext- 웹 환경에서 사용할 때 필요한 기능이 추가된 애플리케이션 컨텍스트
- 가장 많이 사용하며, 특히 XmlWebApplicationContext를 가장 많이 사용
Spring List
Spring List
Start Spring!! ● Spring Tip!! ● 기회는 준비된 자에게 찾아온다.
han-hoon.tistory.com
기회는 준비된 자에게 찾아온다.

반응형
LIST
'Programming > Spring' 카테고리의 다른 글
[Spring] Spring API & .jar 확인 (스프링) (0) | 2022.04.15 |
---|---|
[Spring] Spring DI 용어 정리 (스프링) (0) | 2022.04.15 |
[Spring] Spring IoC (스프링) (0) | 2022.04.15 |
[Spring] Spring의 특징 (스프링) (0) | 2022.04.15 |
[Spring] Spring의 구조 (스프링) (0) | 2022.04.15 |
댓글