개발/Spring

@Aspect 우선순위

이쪽저쪽살짝 2023. 4. 5. 21:12
반응형

Aspect의 우선순위는 @Order 어노테이션을 사용하여 지정할 수 있습니다. @Order 어노테이션은 숫자 값을 가지며, 값이 작을수록 우선순위가 높습니다. 두 개의 Aspect가 같은 Join Point에 적용되는 경우, 우선 순위가 높은 Aspect가 먼저 적용됩니다.

예를 들어, 다음과 같이 두 개의 Aspect가 있고 @Order 어노테이션을 사용하여 우선순위를 지정했다고 가정하겠습니다.

import org.aspectj.lang.annotation.Aspect;
import org.springframework.core.annotation.Order;

@Aspect
@Order(1)
public class FirstAspect {
    // ...
}

@Aspect
@Order(2)
public class SecondAspect {
    // ...
}

이 경우, FirstAspect의 우선순위가 SecondAspect보다 높습니다. 따라서 두 Aspect가 동일한 Join Point에 적용되는 경우, FirstAspect가 먼저 적용되고, 그 다음에 SecondAspect가 적용됩니다.

주의할 점은 @Order 어노테이션의 값이 낮을수록 우선순위가 높다는 것입니다. 예를 들어, @Order(1)이 @Order(2)보다 높은 우선순위를 갖습니다.

또한 @Order 어노테이션을 지정하지 않은 Aspect의 경우, 기본적으로 가장 낮은 우선순위를 가집니다. 이 경우, @Order가 지정된 Aspect들이 모두 적용된 후에 적용됩니다.

반응형