title: Spring Cloud Gateway Filter ordering
body: <p>I'm using spring cloud gateway filter, and want to filter request by <code>GatewayFilterFactory</code>, 
  but order not working with <code>@Order</code> annotation</p>
  
  <p>I tried to swap the order of filters, but not working.</p>
  
  <pre class="lang-java prettyprint-override"><code>
  @Slf4j
  @Order(1)
  @Component
  public class AccessFilter implements GatewayFilterFactory&lt;AccessFilter.Config&gt; {
  
      @Override
      public GatewayFilter apply(AccessFilter.Config config) {
          return (exchange, chain) -&gt; { 
             log.info("in AccessFilter second");
             // do something
          }
      }
  }
  
  </code></pre>
  
  <pre class="lang-java prettyprint-override"><code>@Order(-1)
  @Slf4j
  @Component
  public class AddTraceIdGlobalFilter implements GlobalFilter {
      @Override
      public Mono&lt;Void&gt; filter(ServerWebExchange exchange, GatewayFilterChain chain) {
          log.info("in globalfilter first");
          // do something
      }
  
  }
  
  </code></pre>
  
  <p>My yaml file:</p>
  
  <pre><code>spring:
    cloud:
      gateway:
        routes:
        - id: user_1
          uri: http://user:8080
          predicates:
          - Path=/v1/user/info
          filters:
          - AccessFilter
  </code></pre>
  
  <p>I expect the output:   </p>
  
  <pre><code>in globalfilter first
  in AccessFilter second
  </code></pre>
  
  <p>but the actual output:</p>
  
  <pre><code>in AccessFilter second
  in globalfilter first
  </code></pre>