실전 개발자를 위한 Spring Framework Day4
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 클래스로 구현된다