我在我的web應用程序中使用spring-cloud-sleuth。我接到的第三方不幸的是在X-B3-TraceId標題中發送UUID。但是,在將字符串轉換爲十六進制時,由於UUID中的' - '字符,Spring中的TraceFilter可能會偵測到錯誤。所以我決定編寫我自己的過濾器,它將在TraceFilter之前攔截請求,並從頭中刪除跟蹤標識。這是我的配置:更改彈簧啓動過濾器的順序
@Bean
public FilterRegistrationBean getZipkinFilterRegistrationBean() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new ZipkinHeaderReplaceFilter());
bean.setOrder(1);
bean.addUrlPatterns("/");
return bean;
}
這是由彈簧雲偵探的TraceFilter:
@Order(TraceFilter.ORDER)
public class TraceFilter extends GenericFilterBean {
protected static final int ORDER = Ordered.HIGHEST_PRECEDENCE + 5;
.........
}
所以跟蹤濾波器的階正是-2147483643
,我認爲這使得之前出現在我的過濾。我不想改變我的過濾器的順序。如何將TraceFilter
的訂單更改爲2
,因爲彈簧引導自動配置會自動註冊TraceFilter
?
爲什麼不向FilterRegistrationBean註冊TraceFilter並設置順序? – kuhajeyan