@WebFilter为什么和@Order冲突
@WebFilter:是servlet提供的 Api用来配置过滤器的注解
@Order:spring提供的用来指定ioc容器中bean的加载顺序的优先级(不是加载顺序),要使用@Order注解指定顺序应该是component而不是@WebFilter
@Order注解有个文章讲的比较好可以看一下:https://dongguabai.blog.youkuaiyun.com/article/details/105886596
因此使用@Order不能对@WebFilter指定顺序
实测可以替代的办法:
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean filterBean1(){
FilterRegistrationBean<Filter> filterFilterRegistrationBean = new FilterRegistrationBean<>();
filterFilterRegistrationBean.setFilter(new Filter1());
filterFilterRegistrationBean.setOrder(1);//执行的顺序
filterFilterRegistrationBean.addUrlPatterns("/*");
return filterFilterRegistrationBean;
}
@Bean
public FilterRegistrationBean filterBean1(){
FilterRegistrationBean<Filter> filterFilterRegistrationBean = new FilterRegistrationBean<>();
filterFilterRegistrationBean.setFilter(new Filter2());
filterFilterRegistrationBean.setOrder(2);//执行的顺序
filterFilterRegistrationBean.addUrlPatterns("/api/v1/*");
return filterFilterRegistrationBean;
}
}