AOP 적용

장서연·2022년 1월 13일
0

스프링 입문

목록 보기
25/25
  • AOP : Aspect Oriented Programming
  • 공통 관심사항과 핵심 관심사항 분리

TimeTraceAop.java

@Aspect
@Component
public class TimeTraceAop {
    @Around("execution(* com.hello.hellospring..*(..))")
    public Object execute(ProceedingJoinPoint joinPoint) throws Throwable {
        long start = System.currentTimeMillis();
        System.out.println("START: " + joinPoint.toString());
        try {
            Object result = joinPoint.proceed();
            return result;
        }finally {
            long finish = System.currentTimeMillis();
            long timeMs = finish = start;
            System.out.println("END: " + joinPoint.toString() + " " + timeMs + "ms");
        }
    }
}

해결

  • 회원 가입, 회원 조회 등 핵심 관심사항과 시간을 측정하는 공통 관심사항을 분리한다
  • 시간을 측정하는 로직을 별도의 공통 로직으로 만들었다
  • 원하는 적용 대상을 선택할 수 있다


  • 실제 Proxy 가 주입되는지 콘솔에 출력해서 확인할 수 있다

0개의 댓글