【发布时间】:2014-11-15 11:06:31
【问题描述】:
如何在 spring-boot 中指定过滤器的顺序?我需要在 Spring Security 过滤器之后插入我的 MDC 过滤器。我几乎尝试了所有东西,但我的过滤器总是第一个。这不起作用:
@Bean
@Order(Ordered.LOWEST_PRECEDENCE)
public UserInsertingMdcFilter userInsertingMdcFilter() {
return new UserInsertingMdcFilter();
}
这也没有用:
@Bean
public FilterRegistrationBean userInsertingMdcFilterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
UserInsertingMdcFilter userFilter = new UserInsertingMdcFilter();
registrationBean.setFilter(userFilter);
registrationBean.setOrder(Integer.MAX_VALUE);
return registrationBean;
}
【问题讨论】:
-
@Order(Ordered.LOWEST_PRECEDENCE + 100)将不起作用,因为Ordered.LOWEST_PRECEDENCE = Integer.Max和 Integer.Max + 100 = 某个负数,这意味着非常高的优先级 -
@Ralph - 我也尝试了事件
@Order(Ordered.LOWEST_PRECEDENCE),但没有成功。 -
什么版本的 Spring Boot?你试过 1.1.7 吗?
-
@DaveSyer,我试过了,没区别
标签: java spring spring-mvc spring-boot