Java 如何在spring boot中订购过滤器?
我正在创建不同的Java 如何在spring boot中订购过滤器?,java,spring,spring-boot,Java,Spring,Spring Boot,我正在创建不同的过滤器@Bean,并希望在另一个过滤器之前强制执行特定过滤器: @Bean @Order(1) public Filter getLoggingUuidFilter() { return new Filter() { //... }; } @Bean @Order(2) public Filter getLoggingRequestFilter() { return new CommonsRequestLoggingFilter(); }
过滤器
@Bean
,并希望在另一个过滤器之前强制执行特定过滤器:
@Bean
@Order(1)
public Filter getLoggingUuidFilter() {
return new Filter() {
//...
};
}
@Bean
@Order(2)
public Filter getLoggingRequestFilter() {
return new CommonsRequestLoggingFilter();
}
结果:Filter2在Filter1之前执行。为什么?来自@Order的spring文档 特定类型的文档支持基于注释的排序 仅组件—例如,对于基于注释的AspectJ特性。 另一方面,Spring容器中的订购策略, 通常基于有序接口,以允许 以编程方式配置每个实例的顺序
好的,
@Order
不是用来排序过滤器的,但是必须另外创建一个FilterRegistrationBean
和filter.setOrder(Ordered.HIGHEST\u优先级)代码>。