Advice Types inside AOP 알아보자
Before advice: 메서드가 호출되기 전에 실행. ex) 메서드 호출 전에 인증을 수행하거나, 로그를 기록하는 등의 작업을 수행.
@Before("execution(* *.*(..))")
public void beforeAdvice() {
// 인증을 수행한다.
}
AfterReturning advice: 메서드가 정상적으로 종료된 후 실행. ex) 메서드 호출 결과를 캐싱하거나, 성능 측정을 수행하는 등의 작업을 수행.
@AfterReturning("execution(* *.*(..))")
public void afterReturningAdvice(Object returnValue) {
// 메서드 호출 결과를 캐싱한다.
}
AfterThrowting advice: 메서드가 예외를 발생시킨 후 실행. ex) 예외를 로그에 기록하거나, 사용자에게 알림을 보내는 등의 작업을 수행.
@AfterThrowing("execution(* *.*(..))")
public void afterThrowingAdvice(Exception ex) {
// 예외를 로그에 기록한다.
}
After advice: 메서드가 종료된 후 실행. ex) 메모리 누수를 방지하거나, 작업을 종료하는 등의 작업을 수행.
@After("execution(* *.*(..))")
public void afterAdvice() {
// 메모리 누수를 방지한다.
}
Around advice: 메서드 호출 전후에 원하는 작업을 수행. ex) 메서드 호출 시간을 측정하거나, 메서드 호출 결과를 변화하는 등의 작업을 수행.
@Around("execution(* *.*(..))")
public Object aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable {
// 메서드 호출 시간을 측정한다.
Object returnValue = joinPoint.proceed();
// 메서드 호출 결과를 변환한다.
return returnValue;
}
'알아가기 > Spring' 카테고리의 다른 글
[Spring] Tomcat 실행 에러 해결 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener (2) | 2023.12.08 |
---|---|
[Spring] 임의의 서버 포트 번호 (random server port number) (0) | 2023.11.18 |
[Spring] Eager Instantiation Vs Lazy Instantiation (0) | 2023.11.05 |
[Spring] SecurityFilterChain 로그인 후 특정 주소로 이동 (0) | 2023.08.30 |
[Spring] Spring Boot Actuator 사용 (0) | 2023.08.29 |