해결된 질문
작성
·
96
0
11:47부터
//call AppConfig.memberService //call AppConfig.memberRepository
//call AppConfig.memberRepository
//call call AppConfig.orderService
//call AppConfig.memberRepository
처럼 보인다했는데
//call AppConfig.memberRepository
//call AppConfig.memberRepository
가 //call AppConfig.memberService후 에 두번 호출되는것처럼 보인다는건가요?
//call call AppConfig.orderService호출 후 한번 call AppConfig.memberRepository출력된것처럼 보이는거아닌가요??
왜 memberService일때는 왜 레포지토리가 두번 호출되는것처럼 보이나여ㅛ?
답변 1
0
안녕하세요. 알고리즘가즈앙님, 공식 서포터즈 OMG입니다.
memberRepository가 2번 더 호출된다고 하신 이유는
33번째 줄 안에서 return new MemberServiceImpl(memberRepository()
);
memberRepository()
를 호출하기 때문입니다.
메서드 내부(memberSerivceImpl() ) 에서 같은 클래스 내에 있는 다른 메서드( memberRepository()
) 를 호출하는 구조입니다.
설명드린 내용을 보충하자면, printA()라는 메서드는 내부에서 sayOMG()라는 메서드를 호출하여
printA에서 sayOMG()의 리턴 값을 받아서 메시지를 출력합니다.
void printA() {
System.out.println("출력 결과 = " + sayOMG());
}
String sayOMG() {
return "OMG";
}
출력 결과: OMG
메서드 내부에서 다른 메서드를 호출한다는 것을 인지하시고 다시 한번 영한님 설명을 확인해주세요 😀
감사합니다.