작성
·
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 문으로 넘어가게 됩니다.
감사합니다.
너무 복잡하게 생각했었네요ㅠㅠ 감사합니다 !!