AOP Advice 종류

salgu·2022년 3월 18일
0

Spring

목록 보기
7/22

example code

// hello.aop.order 패키지와 하위패키지이면서 클래스 이름 패턴이 Service 인것
    @Around("hello.aop.order.aop.Pointcuts.orderAndService()")
    public Object doTransaction(ProceedingJoinPoint joinPoint) throws Throwable {
        try {
            // @Before
            log.info("[Transaction Start] {}", joinPoint.getSignature());
            final Object result = joinPoint.proceed();
            // @AfterReturning
            log.info("[Transaction End] {}", joinPoint.getSignature());
            return result;
        } catch (IllegalStateException e) {
            // @AfterThrowing
            log.info("[Transaction Rollback] {}", joinPoint.getSignature());
            throw e;
        } finally {
            // @After
            log.info("[Resource Release] {}", joinPoint.getSignature());
        }
    }
  • @Around : 메소드 호출 전후에 수행, 가장 강력한 Advice이고 Joinpoint 실행 여부 선택, 반환 값 변환, 예외 변환등 모든 기능 사용가능합니다.
  • @Before : Joinpoint 실행 이전에 실행합니다.
  • @AfterReturning: Joinpoint가 정상 완료후 실행합니다.
  • @AfterThrowing : 메소드가 예외를 던지는 경우 실행합니다.
  • @After : Joinpoint가 정상적으로 처리되거나 예외가 발생하거나 상관없이 실행됩니다(finally)
profile
https://github.com/leeeesanggyu, leeeesanggyu@gmail.com

0개의 댓글