문제!
AOP 사용!
java/hello/spring/aop/TimeTraceAop.java
package hello.spring.aop;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
@Component
@Aspect
public class TimeTraceAop {
@Around("execution(* hello.spring..*(..))")
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를 사용한 시간로직 코드
서버를 킨 후 홈페이지를 키거나 회원가입 할때 자동으로 메소드 호출 시간이 나온다. AOP를 거치기 때문이다.
해결
기존 의존관계
AOP 적용 후 의존관계
참고
김영한: 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(인프런)
Github - https://github.com/b2b2004/spring-ex