본문 바로가기
공부이야기/Spring

[Spring] IoC 컨테이너란? (IoC: Inversion of Control)

by coderoom 2021. 5. 2.

 

 

 

IoC (Inversion of Control)

제어권의 역전 (일반적으로 제어권이란 자기가 사용할 의존성은 스스로 만들어서 사용하는 것을 의미)

제어권이 역전되었다는 것은 다른 누군가가 의존성을 외부에서 줌(DI: Dependency Injection 알아보기)을 의미한다.

 

 

 

Spring IoC Container

Bean을 구성하고 제공하는 컨테이너.

오브젝트에 대한 제어권을 코드 대신 갖고 있다고 해서 IoC라고 부른다.

BeanFactory와 ApplicationContext 두 가지가 있다.

 

 

 

BeanFactory

Bean의 생성과 설정 및 관리를 맡고 있다.

  • Bean을 등록, 생성, 조회, 반환 관리함.
  • 보통은 이를 확장한 ApplicationContext를 사용함.
  • getBean() 메소드가 정의되어 있다.

 

ApplicationContext

BeanFactory를 상속받고 있는 서브 인터페이스이다. BeanFactory에 여러 가지 컨테이너 기능을 추가한 것.

  • BeanFactory와 같이 Bean을 등록, 생성, 조회, 반환 관리한다.
  • Spring의 각종 부가 서비스를 추가로 제공함.
  • Spring이 제공하는 ApplicationContext 구현 클래스로 여러 가지 종류가 있다.

 

 

 

참고 링크

 

 

 

댓글