springboot项目如何改变引入的jar包中filter的顺序?

SpringBoot项目,引入了两个Jar包,两个包中分别有一个Filter,请教各位同学,怎么在自己的项目中去变更这两个Filter的顺序啊?

两个Filter都是在jar包中通过@Configuration写配置类注册进去的,如下面代码所示

@Bean
public FilterRegistrationBean myFilter() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new MyFilter());
registration.addUrlPatterns(new String[]{"/*"});
registration.setOrder(-10);
registration.setName("myFilter");
return registration;
}

用BeanFactoryPostProcessor接口就可以了

   @Component
    public class FilterBeanFactoryPostProcessor implements BeanFactoryPostProcessor{

        @Override
        public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
            BeanDefinition myFilterBeanDefinition = beanFactory.getBeanDefinition("myFilter");
            myFilterBeanDefinition.getPropertyValues().add("order",-10000);
        }
    }

如果按照题主配置类的方式注册过滤器,指定过滤器的顺序是通过registration.setOrder实现.order中指定的数值越小,执行的优先级越高.
如有帮助,欢迎采纳!

能不能通过@ComponentScan排除这两个bean,或者声明这两个bean的配置类,然后手动自己配置一下

重写这两个过滤器,指定执行的顺序

@Configuration
@Order(2)
试过这种方式吗