강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

정우진님의 프로필 이미지
정우진

작성한 질문수

스프링 핵심 원리 - 고급편

스프링 AOP 구현6 - 어드바이스 종류

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

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

 


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

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

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

정우진님의 프로필 이미지
정우진

작성한 질문수

질문하기