제어의 역전 : 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것
사용자가 호출하는게 아닌 프레임워크가 대신 호출.제어권의 뒤바뀜
이전에는 memerservice구현체가 직접 memoryrepository 생성연결...
어떤 MemberServiecImpl을 쓸지 AppConfig에서 결정.
appConfig등장하고 프로그램에 대한 제어 흐름짐에 대한 권한은 모두 AppConfig가 가짐
의존관계 주입 : 애플리케이션 실행 시점(런타임)에 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존관계가 연결 되는 것
실제 어떤 구현 객체가 사용될 지 몰라. 정적인 클래스 의존관계는 변경하지 않고 동적인 객체 인스턴스 의존관계 변경.
OrderServiceImpl은 MemberRepository , DiscountPolicy에만 의존
IoC 컨테이너, DI 컨테이너 : AppConfig 처럼 객체를 생성하고 관리하면서 의존관계를 연결해 주는 것
의존관계 역전을 일으키는 AppConfig가 IoC컨테이너
'Spring 강의 > springMVC' 카테고리의 다른 글
springMVC 기본 - (5) 싱글톤 컨테인너 (0) | 2022.03.11 |
---|---|
springMVC 기본 - (4) 스프링 컨테이너와 빈 (0) | 2022.03.10 |
springMVC 기본 - (3) 객체 지향 원리 적용 (0) | 2022.03.10 |
springMVC 기본 - (2) 회원 도메인 (0) | 2022.03.09 |
springMVC 기본 - (1) 좋은 객체 지향 설계와 스프링 (0) | 2022.03.06 |