AOP |
AOP가 필요한 사항 |
- 모든 메소드의 호출 시간을 측정하고 싶다면? - 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) - 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면? |
aop 패키지 생성후 - 안에 TimeTraceAop 클래스 파일 생성 |
package hello.hellospring.aop;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
@Aspect
@Component
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");
}
}
}
'스프링' 카테고리의 다른 글
좋은 객체 지향 프로그래밍이란? (1) | 2021.06.03 |
---|---|
스프링이란? (0) | 2021.06.03 |
[Spring Boot] InteliJ 5. H2 데이터베이스 설치 (0) | 2021.06.01 |
[Spring Boot] 4. InteliJ 정적 컨텐츠 방식, MVC, API (0) | 2021.05.21 |
[Spring Boot] 3. InteliJ 빌드 (0) | 2021.05.20 |