public MemberService memberService(){
return new memberServiceImpl(new MemoryMemberRepository())
}
AppConfig에 정의된 memberService라는 메서드는 MemberService 타입의 반환값을 반환하는데
memberServiceImpl의 생성자에 매개변수로 memoryMemberRepository를 보내서
결과값으로 생성된 memberRepositoryImpl을 최종적으로 반환한다,
public OrderServiceImpl orderService(){
return new OrderServiceImpl(new MemoryMemberRepository() , new FixDisCountPolicy())
}
위는 매개변수가 2개인 경우의 예로
OrderServiceImpl타입의 결과를 반환하는 메소드인데
매개변수가 2개인 경우이다.
AppConfig에서의 역활은 해당 서비스에서 사용할 객체들을 생성할 수 있는 메서드 들을 만들어두고
실제 구현 기능에서
AppConfig 를 객체생성 한후 (AppConfig appConfig = new AppConfig());
해당 AppConfig의 메소드를 호출하여 객체를 생성하는 용도로 사용한다,
(MemberService memberService = appConfig.memberService());
위 처럼 appConfig의 메소드를 사용해서 "memberService"를 생성하게 된다.
이후 위에서 후출받은 메서드를 통해 생성자가 매개변수를 받아 실행되어 생성되는 것으로
드디어 역활 - 구현 관계가 성립되게 된다.
(인터페이스) > (구현클래스) ,(생성자 생성) > AppConfig(여기에 모든 메소드 작성)
'SpringBoot' 카테고리의 다른 글
10월 11일 SpringBoot DI컨테이너 / IoC컨테이너 (0) | 2022.10.12 |
---|---|
10월 10일 Spring Boot AppConfig 설명 (2) | 2022.10.10 |
10월 6일 Spring Boot DIP와 생성자 주입 (0) | 2022.10.07 |
10월 5일 Spring Boot 다형성 설계시 중요한것. (0) | 2022.10.06 |
10월4일 Spring Boot OrderApp구현 (0) | 2022.10.05 |