[Spring] JoinPoint 메소드
[Spring] JoinPoint 메소드
들어가기에 앞서
- 채규태 저자님의 '스프링 퀵 스타트' 를 참고하여 작성하였습니다.
- 저자님의 요청에 따라 언제든지 게시물이 비공개로 전환될 수 있습니다.
- 이해한 내용을 바탕으로 작성하였기 때문에 틀린 부분이 있을 수 있습니다.
AOP를 구현할때 어드바이스 메소드를 의미있게 구현하려면 해당 포인트컷 메소드의 정보가 필요하다.
예를들어 After Throwing 어드바이스를 구현했을때, 예외가 발생한 포인트컷의 메소드 이름과 예외 정보들을 알아야 예외 처리 로직 작성이 가능하다.
스프링은 이러한 정보들을 얻을 수 있게 JoinPoint 인터페이스를 제공한다.
JoinPoint 메소드
JoinPoint에서 주로 사용되는 메소드는 다음과 같다.
메소드 설명 Signature getSignature() 호출된 비즈니스 메소드의 시그니처(반환형, 이름, 매개변수) 정보가 저장된 Signature 객체 반환 Object getTarget() 호출된 비즈니스 메소드를 포함하는 비즈니스 객체 반환 Object getArgs() 호출된 비즈니스 메소드의 파라미터 목록을 Object 배열로 반환
JoinPoint는 Before, After Returning, After Throwing, After 어드바이스에서 사용하며, 어드바이스의 매개변수로 선언하면 된다.
예외적으로 Around 어드바이스에서는 ProceedingJoinPoint를 사용해야 한다. ProceedingJoinPoint는 JoinPoint 인터페이스를 상속한 인터페이스로서 proceed() 메소드가 추가되었는데, 가로챈 비즈니스 메소드를 호출하기 위해 proceed() 메소드를 호출하기 때문이다.
from http://juwonkim.tistory.com/127 by ccl(A) rewrite - 2020-03-12 00:20:27
댓글
댓글 쓰기