Introduction to the Spring IoC Container and Beans
DI는 IoC(inversion of control, 제어의 역전)의 특수한 형태다.
- IoC랑 DI랑 뭐가 다름? → IoC가 더 큰 개념이고 DI가 그 구현방법 중 하나라고 한다.
A객체가 B객체를 사용할 때 A가 B를 의존한다고 하는데, IoC 컨테이너는 객체, 즉 빈을 생성할 때 이러한 의존성을 주입한다. → 이러한 매커니즘 자체가 개발자가 의존성을 넣는 방식과는 반대여서 의존성 역전이라고 한다.
IoC 컨테이너 관련 인터페이스가 두 개 있는데
- BeanFactory → 기본 기능 제공
- ApplicationContext → 기본 기능 + 메시지 소스 처리, AOP 관련 기능, 이벤트 발행 등 추가 기능
스프링 컨테이너에 의해 관리되는 객체를 bean 이라고 한다.
관리?
- 인스턴스화
- 의존성 조립 → 이건 컨테이너가 가지고 있는 configuration metadata를 이용한다.
- 생명주기에 따른 관리
Container Overview