반응형
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들이 모두 적용된 후에 적용됩니다.
반응형
'개발 > Spring' 카테고리의 다른 글
ArgumentResolver 사용법 (0) | 2023.04.09 |
---|---|
[스프링] DI(Dependency Injection) 이해하기 - 심화편 (0) | 2023.04.04 |
[스프링] DI(Dependency Injection) 이해하기 - 기초편 (0) | 2023.04.04 |
@JsonInclude 애너테이션 사용법 (0) | 2023.04.02 |
Spring Data JPA에서 Pageable 기능 활용하기 (0) | 2023.04.02 |