diff --git a/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java b/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java index 90b59765d9ac..352e45186f96 100644 --- a/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java +++ b/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java @@ -126,23 +126,25 @@ public ControllerAdviceBean(String beanName, BeanFactory beanFactory, @Nullable *

As of Spring Framework 5.2, the order value is lazily retrieved using * the following algorithm and cached. *

* @see #resolveBean() */ @Override public int getOrder() { if (this.order == null) { + if (this.beanType != null) { + this.order = OrderUtils.getOrder(this.beanType, Ordered.LOWEST_PRECEDENCE); + return this.order; + } Object resolvedBean = resolveBean(); if (resolvedBean instanceof Ordered) { this.order = ((Ordered) resolvedBean).getOrder(); } - else if (this.beanType != null) { - this.order = OrderUtils.getOrder(this.beanType, Ordered.LOWEST_PRECEDENCE); - } else { this.order = Ordered.LOWEST_PRECEDENCE; }