Inversion of Control ("제어의 역전")
프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전이라 한다.
IoC Container, DI Container
Spring Container
//스프링 컨테이너 생성
val applicationContetxt: ApplicationContext = AnnotationConfigApplicationContext(AppConfig.class);
ApplicationContext
를 스프링 컨테이너라 한다.ApplicationContext
는 인터페이스이다BeanFactory
, ApplicationContext
로 구분해서 이야기 한다. BeanFactory
를 직접 사용하는 경우는 거의 없으므로 일반적으로 ApplicationContext
를 스프링 컨테이너라 한다Spring Container 생성 과정
스프링 컨테이너 생성
스프링 빈 등록
스프링 빈 의존 관계 설정 - 준비
스프링 빈 의존 관계 설정 - 완료