• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

@AfterReturning : result 질문입니다.

22.09.05 15:57 작성 조회수 231

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);
}

@AfterReturningresult 타입은 Integer 이기 때문에 OrderRepository의 반환 타입과 매칭되지 않아 해당 기능이 실행되지 않는다고 하셨는데 해당 로직은 포인트컷에서 필터링되는것이 아니라 어드바이스 로직에서 필터링 되는건가요?

 


프록시가 생성된것 보니 포인트컷이 아니라 해당 어드바이스에서 실행된것 확인했습니다.

답변 1

답변을 작성해보세요.

0

정우진님 스스로 잘 확인하셨습니다^^