노션으로 다시 돌아갔습니다 😅

[AOP] JoinPoint

by mignon25

AOP 적용 기법

AOP의 적용 기법은 AspectJ, 프록시 방식으로 나누어진다.

  • AspectJ 
    • 바이트코드를 직접 조작해서 AOP를 적용
    • 오브젝트의 생성, 필드 값의 조회와 조작, 프록시 적용이 불가능한 private 메서드 호출, 스태틱 메서드 호출 및 초기화 등 모든 지점에 모두 부가기능을 부여할 수 있다. 
  • 프록시 방식(스프링 AOP)
    • 조인 포인트로 메서드 실행지점만 사용 가능
    • 프록시는 메서드 오버라이딩 개념으로 동작
    • 스프링 컨테이너가 관리할 수 있는 스프링 빈에만 AOP 적용 가능

 

 

JoinPoint

애플리케이션 실행 흐름에서 특정포인트 (AOP를 적용할 수 있는 지점)
  • AOP 를 수행하는 메서드는 이 JoinPoint 인스턴스를 인자로 받게 된다. 
  • JoinPoint 인스턴스에서 조인 포인트 지점의 정보를 얻을 수 있다. 
  • JoinPoint.getMethod()
  • JoinPoint.getArgs() : JoinPoint 에 전달된 인자를 배열로 반환
  • JoinPoint.getThis() : AOP 프록시 객체 반환
  • JoinPoint.getTarget()
    • AOP가 적용된 대상 객체 반환
    • 클라이언트가 호출한 비즈니스 메서드를 포함하는 비즈니스 객체 반환
  • JoinPoint.getSignature() 
    • 클라이언트가 호출한 메소드의 시그니처 (리턴타입, 이름, 매개변수) 정보가 저장된 Signature 객체를 리턴
  • Signture 메서드
    • String getName() : 클라이언트가 호출한 메서드의 이름 반환
    • String toLongString() : 클라이언트가 호출한 메서드의 리턴타입, 이름, 매개변수를 패키지 경로까지 포함하여 반환
    • String toShortString() : 클라이언트가 호출한 메서드 시그니처를 축약한 문자열로 반환

 

 

ProceedingJoinPoint

  • proceed() : 다음 어드바이스나 타겟 호출

 

블로그의 정보

Mignon'S Dev Log

mignon25

활동하기