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

코더님의 프로필 이미지
코더

작성한 질문수

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

TimeTraceAop 함수작동원리

작성

·

243

0

@Component @Aspect

public class TimeTraceAop { @Around("execution(* hello.hellospring..*(..))")

public Object execute(ProceedingJoinPoint joinPoint) throws Throwable {

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"); } } }

 

강의 후반부 aop예제에서 이 함수의 작동원리가 try안에 있는 joinPoint.proceed()를 통해 다음 메서드로 넘어가고 마지막메서드를 실행하고 그다음에 finally문이 실행되어서 메서드실행역순으로 END time이 출력되는건가요??

답변 1

1

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

안녕하세요. 코더님

joinPoint.proceed()를 실행하고 그 결과에 응답이 오고 나면 try 문이 종료됩니다.

그러면 이후에 finally 문으로 넘어가게 됩니다.

감사합니다.

코더님의 프로필 이미지
코더
질문자

너무 복잡하게 생각했었네요ㅠㅠ 감사합니다 !!

코더님의 프로필 이미지
코더

작성한 질문수

질문하기