본문 바로가기
Java/[스프링 5 프로그래밍 입문]

[Spring] 스프링 컨테이너(Container) 의미

2021. 7. 22.
반응형

스프링 컨테이너는 객체 관리를 위한 다양한 기능을 제공한다. 이와 관련된 기능이 ApplicationContext 인터페이스에 정의되어 있으며 이를 컨테이너라고 부른다. 이를 확장한 클래스들을 이용해 다양한 방식으로 객체의 설정 정보를 가져올 수 있다.

 

스프링은 객체 컨테이너

스프링의 핵심 기능은 객체를 생성하고 초기화하는 것이다. 이와 관련된 기능이 ApplicationContext라는 인터페이스에 정의되어 있으며,  AnnotationConfigApplicationContext 클래스는 자바 클래스에서 정보를 읽어와 객체 생성과 초기화를 수행한다.

 

관련 클래스 계층도 및 각 클래스 설명

BeanFactory

|

...

|

ApplicationContext

|

...

|

AnnotationConfigApplicationContext, GenericXmlApplicationContext, GenericGroovyApplicationContext

 

BeanFactory

  • 객체 생성과 검색에 대한 기능 정의 (ex - getBean() 메서드)
  • 싱글톤/프로토타입 빈인지 확인하는 기능 제공

ApplicationContext

  • 메시지, 프로필/환경 변수 등을 처리할 수 있는 기능을 추가로 정의

AnnotationConfigApplicationContext

  • 자바 애노테이션을 이용한 클래스로부터 객체 설정 정보를 가져온다.

GenericXmlApplicationContext

  • XML로부터 객체 설정 정보를 가져온다.

GenericGroovyApplicationContext

  • 그루비 코드를 이용해 설정 정보를 가져온다.

 

스프링 컨테이너

  • 내부적으로 빈(Bean) 객체와 빈(Bean) 이름을 연결하는 정보를 갖는다.
  • 실제 객체의 생성, 초기화, 의존 주입 등 객체 관리를 위한 다양한 기능 제공한다.
  • ApplicationContext(또는 BeanFactory)을 컨테이너라고 부른다.

 

싱글톤 객체

  • 싱글톤은 단일 객체를 의미한다.
  • 스프링은 기본적으로 한 개의 @Bean 애노테이션에 대해 한 개의 빈 객체만을 생성한다.

 

참고 서적: <초보 웹 개발자를 위한 스프링 5 프로그래밍 입문>

 

초보 웹 개발자를 위한 스프링5 프로그래밍 입문

COUPANG

www.coupang.com

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

728x90
반응형

댓글