Spring

Aspect Annotation

Cal-D 2020. 1. 29. 10:53

LogAdvice 위에 @Aspect로 인해 스프링 컨테이너는 LogAdvice객체를 Aspect로 인식한다.

allPointcut()으로 지정한 메소드가 호출될 때,beforeLog() 메소드가 Before 형태로 동작하도록 설정됨.
위의 Before 와 다르게 pointcut속성을 이용한걸 볼 수 있다. 왜나하면 AfterReturning 어드바이스가 비즈니스 메소드 수행 결과를 받아내기 위해 바인드 변수를 지정해야 하기 때문(returning 부분)
마찬가지로throwing 의 경우 비즈니스 메소드에서 발생된 예외 객체를 받아낼 바인드 변수를 지정하기 위해 존재.

포인트컷만 클래스로 따로 뽑아놓고 아래 처럼 사용가능