인프런 커뮤니티 질문&답변
@AfterReturning : result 질문입니다.
작성
·
326
0
@Slf4j
@Repository
public class OrderRepository {
public String save(String itemId) {
log.info("[orderRepository] 실행");
//저장 로직
if (itemId.equals("ex")) {
throw new IllegalStateException("예외 발생!");
}
return "ok";
}
}
@AfterReturning(value = "hello.aop.order.aop.Pointcuts.allOrder()", returning = "result")
public void doReturn2(JoinPoint joinPoint, Integer result) {
log.info("[return] {} return = {}", joinPoint.getSignature(), result);
}@AfterReturning에 result 타입은 Integer 이기 때문에 OrderRepository의 반환 타입과 매칭되지 않아 해당 기능이 실행되지 않는다고 하셨는데 해당 로직은 포인트컷에서 필터링되는것이 아니라 어드바이스 로직에서 필터링 되는건가요?
프록시가 생성된것 보니 포인트컷이 아니라 해당 어드바이스에서 실행된것 확인했습니다.





