
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 |