Spring/Framework
org.aspectj.runtime.internal.AroundClosure.ProceedingJoinPoint
바람을타고2
2024. 3. 29. 14:35
1. 개요
org.aspectj.runtime.internal.AroundClosure.ProceedingJoinPoint는 AspectJ 프레임워크에서 @Around 어노테이션으로 정의된 어드바이스를 구현할 때 사용하는 클래스입니다.
2. 기능
- Advice 실행:
- proceed() 메서드를 호출하여 타겟 메서드를 실행합니다.
- 타겟 메서드 실행 전후로 어드바이스 로직을 실행할 수 있습니다.
- JoinPoint 정보 제공:
- getSignature() 메서드를 사용하여 타겟 메서드의 서명 정보를 얻을 수 있습니다.
- getTarget() 메서드를 사용하여 타겟 객체를 얻을 수 있습니다.
- getArgs() 메서드를 사용하여 타겟 메서드의 인수를 얻을 수 있습니다.
3. 주요 메서드
- proceed(): 타겟 메서드를 실행합니다.
- getSignature(): 타겟 메서드의 서명 정보를 반환합니다.
- getTarget(): 타겟 객체를 반환합니다.
- getArgs(): 타겟 메서드의 인수를 반환합니다.
4. 예시
Java
@Aspect
public class MyAspect {
@Around("execution(* com.example.MyService.*(..))")
public Object aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable {
// 타겟 메서드 실행 전 로직
Object result = joinPoint.proceed();
// 타겟 메서드 실행 후 로직
return result;
}
}
코드를 사용할 때는 주의가 필요합니다.
content_copy
예시 설명:
- MyAspect 클래스는 @Aspect 어노테이션으로 Aspect임을 선언합니다.
- aroundAdvice() 메서드는 @Around 어노테이션으로 어드바이스임을 선언합니다.
- joinPoint.proceed() 메서드를 호출하여 타겟 메서드를 실행합니다.
- joinPoint.getSignature() 메서드를 사용하여 타겟 메서드의 서명 정보를 얻을 수 있습니다.
- joinPoint.getTarget() 메서드를 사용하여 타겟 객체를 얻을 수 있습니다.
- joinPoint.getArgs() 메서드를 사용하여 타겟 메서드의 인수를 얻을 수 있습니다.
5. 참고 자료
- AspectJ documentation: https://www.eclipse.org/aspectj/