Spring AOP Pointcut 표현식 - @args

목차

@args

메서드내 매개변수에 특정 어노테이션을 가지고 있는 경우 조인 포인트를 매칭

@args메서드내 매개변수가 특정 어노테이션을 가지고 있는 경우 Advice 를 적용합니다. 런타임 시점에서 해당 어노테이션이 실제로 존재하는지 확인합니다.

커스텀 어노테이션

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
}

Advisor 생성

매개변수가 @MyAnnotation 를 가질 경우 advice 를 적용하기 위해 Adivsor 를 생성합니다.

@Aspect
@Component
public class MyAspect {

@Before("@args(com.example.MyAnnotation)")
public void beforeAdvice() {
System.out.println("Before method with @MyAnnotation argument");
}
}

Custom Annotation 적용

doSomething 메소드는 @MyAnnotation 가 붙은 매개변수가 있으므로 Advice 가 적용됩니다.

public class MyService {

public void doSomething(@MyAnnotation String param1, String param2) {
System.out.println("Executing doSomething");
}
}
Share