2016-02-05 62 views
0

我創建不同Filter@Bean,並希望其他過濾器之前執行特定的過濾器的執行:如何訂購彈簧啓動過濾器?

@Bean 
@Order(1) 
public Filter getLoggingUuidFilter() { 
    return new Filter() { 
     //... 
    }; 
} 

@Bean 
@Order(2) 
public Filter getLoggingRequestFilter() { 
    return new CommonsRequestLoggingFilter(); 
} 

結果:過濾器2過濾器1之前執行。爲什麼?

+0

確定的編程配置的順序,所以'@ Order'不是訂購過濾器,但必須額外​​創建一個'FilterRegistrationBean'和'filter.setOrder(Ordered.HIGHEST_PRECEDENCE);'。 – membersound

回答

0

從@Order的春天文檔

基於註解的排序是支持特定種類只有 組件 - 例如,基於註解AspectJ的方面。 Spring容器內 訂貨策略,而另一方面, 通常基於Ordered接口上,以允許 每個實例