인프런 커뮤니티 질문&답변

알고리즘가즈앙님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

@Configuration과 싱글톤

call AppConfig.memberRepository가 왜 두번 더 호출되나요?

해결된 질문

작성

·

68

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()를 호출하기 때문입니다.

image.png

메서드 내부(memberSerivceImpl() ) 에서 같은 클래스 내에 있는 다른 메서드( memberRepository() ) 를 호출하는 구조입니다.

 

설명드린 내용을 보충하자면, printA()라는 메서드는 내부에서 sayOMG()라는 메서드를 호출하여

printA에서 sayOMG()의 리턴 값을 받아서 메시지를 출력합니다.

void printA() {
     System.out.println("출력 결과 = " + sayOMG());
}

String sayOMG() {
    return "OMG";
}

출력 결과: OMG

메서드 내부에서 다른 메서드를 호출한다는 것을 인지하시고 다시 한번 영한님 설명을 확인해주세요 😀

감사합니다.