@Order
🧭 @Order
정의
@Order는 Spring에서 Bean, Aspect, Filter 등의 실행 순서를 지정하는 애너테이션이다. 숫자가 작을수록 먼저 실행된다.
우선순위가 필요한 여러 컴포넌트의 실행 순서를 제어할 때 사용한다.
🧩 역할
- 실행 순서를 지정한다
- AOP Aspect의 적용 순서를 제어한다
- 여러 Bean을 순서대로 처리해야 할 때 사용한다
🛠 사용법
Aspect 순서 지정
@Component
@Aspect
@Order(1)
public class LoggingAspect {
@Before("execution(* com.mvcvue.controller..*.*(..))")
public void beforeLogger(JoinPoint joinPoint) {
System.out.println("beforeLogger");
}
}
적용 예시
@Aspect가 여러 개일 때 실행 순서 지정- 여러 Bean 중 먼저 처리할 대상 지정
⚠️ 주의사항
@Order값이 작을수록 우선순위가 높다.- 모든 Bean에 적용되지 않으면 일부는 기본 순서를 따를 수 있다.
- 메서드별
@Order보다는 클래스 단위로 사용하는 경우가 많다. - AOP에서는
@Order와 프록시 처리 순서를 함께 고려해야 한다.
📌 정리
@Order는 Spring에서 실행 순서를 제어하는 애너테이션이다.- 숫자가 작을수록 먼저 실행된다.
- AOP, Bean 처리 순서가 중요한 경우 유용하다.
댓글남기기