본문 바로가기
Java/Spring

[Java/Spring] 스프링 컨테이너

by 전재경 2022. 12. 8.

스프링 컨테이너

스프링 컨테이너는 스프링에서 자바 객체들을 관리하는 공간

자바 객체를 스프링에선 빈(Bean), 스프링 컨테이너에서는 이 빈의 생성부터 소멸까지를 개발자 대신 관리해주는 곳

 

  • ResourcePatternResolver : 리소스를 읽어오기 위한 인터페이스
  • EnvironmentCapable : 개발, 운영 등 환경을 분리해서 처리하고, 애플리케이션 구동 시 필요한 정보들을 관리하기 위한 인터페이스
  • MessageSource : 메시지 다국화를 위한 인터페이스
  • ApplicationEventPublisher : 이벤트 관련 기능들을 제공하는 인터페이스

 

스프링 컨테이너는 BeanFactory와 ApplicationContext로 나뉘어진다.

 

  • 스프링 컨테이너의 최상위 인터페이스이다.
  • 스프링 빈을 관리하고 조회하는 역할을 담당한다.

 

ApplicationContext

  • BeanFactory 기능을 모두 상속받아서 제공한다.
  • 다음과 같은 부가기능들을 제공한다.
    • 메시지 소스를 활용한 국제화 기능
    • 환경변수 - 로컬, 개발, 운영 등을 구분해서 처리
    • 애플리케이션 이벤트 관리
    • 편리한 리소스 조회
    •  

스프링 컨테이너 생성 과정

 

1) 스프링 컨테이너 생성

비어있는 스프링 컨테이너가 생성된다.

 

2) 스프링 빈 등록

스프링 설정 파일(Java, XML 등)을 기반으로 컨테이너에 스프링 빈이 등록된다.

 

3) 스프링 빈 의존관계 설정

스프링 설정 파일(Java, XML 등)을 기반으로 스프링 빈의 의존관계를 주입(DI)한다.

댓글