AOP - @Around 어노테이션

김현정·2025년 4월 18일
0

@Around : 타겟 메서드 실행 전과 후 모두 끼어들 수 있는 AOP 어노테이션

원래의 메서드가 실행되기 전에 어떤 작업을 하고, 메서드가 실행된 후 결과를 받아 후처리를 할 수 있다.
메서드를 감싸서 실행을 제어할 수 있기 때문에 가장 강력한 어드바이스(advice)라고 부른다.

기본구조

@Around("포인트컷 표현식")
public Object 어드바이스메서드(ProceedingJoinPoint joinPoint) throws Throwable {
    // 메서드 실행 전
    System.out.println("Before");

    Object result = joinPoint.proceed(); // 원래 대상 메서드 실행

    // 메서드 실행 후
    System.out.println("After");

    return result; // 최종적으로 컨트롤러나 서비스로 응답 리턴
}

핵심 클래스: ProceedingJoinPoint

  • joinPoint.proceed() 호출 전: 메서드 실행 전에 할 일

  • joinPoint.proceed() 호출: 진짜 타겟 메서드 실행

  • joinPoint.proceed() 호출 후: 메서드 실행 후 할 일

사용하는 때

공통 기능을 분리하고 싶을 때 사용함.
예) 로깅, 트랜잭션 처리, 권한 체크, 성능 측정, 예외처리 등등

0개의 댓글