[Spring] IoC 컨테이너

Jeon817·2024년 2월 28일

Spring

목록 보기
10/11

[ IoC 컨테이너 ]

  • 컨테이너 - 보통 객체의 생명주기를 관리, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것.

IoC 컨테이너는 IoC를 구현하는 프레임워크의 일반적인 특성입니다.Spring 프레임워크에서 ApplicationContext 인터페이스는 IoC 컨테이너를 나타냅니다.
즉, IoC 컨테이너(Spring 컨테이너)는 Bean으로 알려진 객체의 인스턴스화, 인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해줍니다.

[ IoC 컨테이너의 종류 ]

스프링 컨테이너가 관리하는 객체를 빈(Bean)이라고 하고, 이 빈들을 관리한다는 의미로 컨테이너를 빈 팩토리(BeanFactory) 라고 부릅니다.

객체의 생성과 객체 사이의 런타임 관계를 DI 관점에서 볼 때 컨테이너를 BeanFactory라고 합니다. BeanFactory에 여러가지 컨테이너 기능을 추가한 ApplicationContext가 있습니다.

1.  BeanFactory

  • Spring 컨테이너에 액세스하기 위한 루트 인터페이스입니다. Bean 관리를 위한 기본 기능을 제공
  • BeanFactory 계열의 인터페이스만 구현한 클래스는 단순히 컨테이너에서 객체를 생성하고 DI를 처리하는 기능만 제공한다.
  • Bean을 등록, 생성, 조회, 반환 관리를 한다.
  • 팩토리 디자인 패턴을 구현한 것으로 BeanFactory는 빈을 생성하고 분배하는 책임을 지는 클래스이다.
  • Bean을 조회할 수 있는 getBean() 메소드가 정의되어 있다.
  • 보통은 BeanFactory를 바로 사용하지 않고, 이를 확장한 ApplicationContext를 사용한다.

2.  ApplicationContext

  • ApplicationContext는 BeanFactory 의 하위 인터페이스입니다 . 따라서 BeanFactory의 모든 기능을 제공( Bean을 등록, 생성, 조회, 반환 관리하는 기능은 BeanFactory와 같다 )
  • 스프링의 각종 부가 기능을 추가로 제공한다.
  • BeanFactory 보다 더 추가적으로 제공하는 기능.
    - 국제화가 지원되는 텍스트 메시지를 관리 해준다.
    - 이미지같은 파일 자원을 로드할 수 있는 포괄적인 방법을 제공해준다.
    - 리스너로 등록된 빈에게 이벤트 발생을 알려준다.

0개의 댓글