IoC

1. IoC의 개념

  • IoC(Inversion of Control, 제어의 역전)는 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바꿔었다는 것을 의미

IoC컨테이너

  • 객체에 대한 생성 및 생명주기를 관리한다
  • POJO의 생성, 초기화, 서비스 소멸에 대한 권한을 가진다
  • 개발자들이 직접 POJO를 생성할 수도 있지만 일반적으로 컨테이너에 맡긴다
  • 스프링에서도 IoC 컨테이너 기능을 제공한다

IoC분류

  • DL(Dependency Lookup, 의존성 검색) - 저장소에 저장되어 있는 Bean에 접근하기 위해 컨테이너가 제공하는 API를 이용하여 Bean을 검색하는 것
  • DI(Dependency Injection, 의존성 주입) - 각 클래스 간의 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것
    • DL사용시 컨테이너 종속성이 증가하여 주로 DI를 사용함

DI의 종류

  • Setter Injection
  • Constructor Injection
  • Method Injection

Managed Bean

  • 스프링 컨테이너에 의해서 관리되는 객체
  • 스프링 빈이라고도 한다
  • 스프링 설정파일에 등록되어 사용된다
  • 어노테이션을 통해 자동 등록 기능 사용 가능

Spring Container

  • Managed Bean이 모여있는 곳
  • IoC컨테이너로서 Application Context 클래스로 구현된다