본문 바로가기
개발/Spring

[Spring 기초] IoC란 ?

by 상용최 2020. 2. 23.
반응형

IoC (Inversion of Control) 

  • 제어의 역전이라고 불리운다.
  • 제어권이 역전 되었다는 뜻이다. 
    예전에는 의존관계의 제어를 개발자가 직접 해주었다.
    그러나 제어권이 컨테이너로 넘어갔고 객체의 생성부터 생명주기의 관리까지 객체에 대한 제어권이 바뀐것을 IoC라고 한다.

 

위와 같은 Repository 객체가 있을때 과거에는 아래와 같이 개발자가 직접 제어했다.

하지만 제어권이 컨테이너로 넘어갔고 객체의 생성과 생명주기의 관리까지 할 수 있기때문에 아래와 같은 방식으로 바뀐다.

IoC 컨테이너란 ?

  • 핵심 Interface : BeanFactory
  • Application Component 중앙 저장소
  • Bean 설정 소스로부터 빈 정의를 읽어들여 빈을 구성하고 제공하는 역할을 한다.

Spring IoC 컨테이너

  • ApplicationContext 인터페이스를 구현한 클래스의 오브젝트
  • Application Context는 BeanFactory에 여러가지 기능을 추가한 것.
  • 빈 인스턴스를 생성
  • 의존 관계 설정
  • 빈 제공

Bean 등록 과정

Bean은 런타임시점에 ComponentScan이 설정파일들을 읽고 ApplicationContext에 의하여 IoC컨테이너에 등록된다 

 

 

참고 : https://docs.spring.io/spring-framework/docs/5.0.8.RELEASE/javadoc-api/org/springframework/context/ApplicationContext.html

 

ApplicationContext (Spring Framework 5.0.8.RELEASE API)

Expose AutowireCapableBeanFactory functionality for this context. This is not typically used by application code, except for the purpose of initializing bean instances that live outside of the application context, applying the Spring bean lifecycle (fully

docs.spring.io

 

[참고강의] 인프런 - 스프링 프레임워크 핵심기술 (백기선님)

반응형

댓글