-
org.aspectj.runtime.internal.AroundClosure.ProceedingJoinPointSpring/Framework 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/
'Spring > Framework' 카테고리의 다른 글
Java의 미래, Virtual Thread - 4월 우아한테크세미나 (1) 2024.04.23 AnnotatedTypeMetadata - 어노테이션 정보 추출 (0) 2024.03.25 Condition - Bean 등록 여부를 조건부로 제어 (0) 2024.03.25 Vritual Thread - Kakao tech meet (1) 2023.12.12 spring boot 3.2 - restclient & declarative http interface (2) 2023.12.03 - Advice 실행: