강의

멘토링

로드맵

Inflearn brand logo image

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

GentleM님의 프로필 이미지
GentleM

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

AOP 적용

AOP 동작 방식에 대하여

해결된 질문

작성

·

59

2

삭제된 글입니다

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 배만진님

다음 코드 프록시 코드에서 joinPoint.proceed()가 호출되면, 실제 memberService 클래스를 실행합니다.

그리고 실제 memberService가 필요한 로직을 처리(memberRepository 호출 등등..) 하고 결과를 반환하면, 다음 코드의 return 문이 호출됩니다.

자바 문법상 finally는 return이 되어도 호출되기 때문에, 최종적으로 finally 코드가 호출됩니다.

long start = System.currentTimeMillis();

System.out.println("START: " + joinPoint.toString());

try {

    return joinPoint.proceed(); //실제 객체 호출

} finally {

    long finish = System.currentTimeMillis();

    long timeMs = finish - start;

    System.out.println("END: " + joinPoint.toString()+ " " + timeMs + "ms");

}

감사합니다.

GentleM님의 프로필 이미지
GentleM
질문자

프록시 -> 실제 -> 프록시로 다시 돌아오는군요! 코드를 제대로 봤으면 충분히 이해했을 텐데... 그림에만 너무 집중해서 놓쳤던 것 같습니다.

답변 감사합니다!

GentleM님의 프로필 이미지
GentleM

작성한 질문수

질문하기