AOP

이가현·2022년 9월 30일
0

스프링

목록 보기
6/6

Aspect Oriented Programming

  • 메소드의 호출 시간을 측정하고 싶을 때 사용
  • 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 분리
  @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 +
          }
      }
   }

✅ 적용 전

✅ 적용 후

0개의 댓글