본문 바로가기
Programming/Spring

[Spring] Spring Container (스프링)

by HoonSikE 2022. 4. 15.
반응형
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

댓글