🧭 @Order

정의

@OrderSpring에서 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 처리 순서가 중요한 경우 유용하다.

연결문서

댓글남기기