Reference: Spring Docs - @AfterReturning
- 지정한 method의 실행이 정상적으로 실행되고 return 한 후 실행된다
- target method가 예외를 던지지 않고 정상적으로 실행된 경우에만 실행된다
- 주로 target method의 return 값을 조작하거나, logging과 같은 작업을 수행하는 데 사용된다
-
pointcut
-
어떤 method에 대해 advice를 적용할 것인지 지정한다
- AspectJ의 pointcut 표현식을 사용하여 method를 선택할 수 있다
-
ex)
@AfterReturning(pointcut = "execution(* com.example.service.MyService.*(..))") public void afterReturningAdvice() { // advice 내용 }
-
-
returning
-
target method의 return 값을 받을 변수를 지정한다
- advice 내에서 해당 변수를 사용하여 target method return 값에 접근할 수 있다
-
ex)
@AfterReturning(pointcut = "execution(* com.example.service.MyService.*(..))", returning = "result") public void afterReturningAdvice(Object result) { // result 변수를 통해 대상 method의 return 값에 접근 가능 }
-
-
argNames
-
pointcut에서 지정한 method의 argument 이름을 지정하여 advice 내에서 argument에 접근할 수 있게 한다
- argument 이름을 알아야 하는 경우 사용할 수 있다
-
ex)
@AfterReturning(pointcut = "execution(* com.example.service.MyService.someMethod(..))", returning = "result", argNames = "param1,param2") public void afterReturningAdvice(Object result, String param1, int param2) { // result, param1, param2 변수를 통해 return 값과 parameter 에 접근 가능 }
-