gpt4 book ai didi

Spring Boot如何在没有注释的情况下设置过滤器的顺序

转载 作者:行者123 更新时间:2023-12-05 01:17:38 25 4
gpt4 key购买 nike

我正在尝试在 Spring 过滤器链中插入(在第一个位置)一个简单的自定义 Cors 过滤器。

如果我这样做

@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CorsFilter implements Filter {

它完美地工作
我可以通过在 Spring 的 ServletHandler.java 中放置一个断点来验证它
chain=getFilterChain(baseRequest, target, servlet_holder);

我只是想知道我是否愿意 不是 使用 @Componenent and @Order而是将过滤器 bean 定义为应用程序上下文。
如何设置过滤器的顺序?

最佳答案

见示例:
在您的类 ServletInitializer 中:

@Bean
public FilterRegistrationBean requestLogFilter() {
final FilterRegistrationBean reg = new FilterRegistrationBean(createRequestLogFilter());
reg.addUrlPatterns("/*");
reg.setOrder(1); //defines filter execution order
return reg;
}

@Bean
public RequestLogFilter createRequestLogFilter(){
return new RequestLogFilter();
}

我的过滤器的名称是“requestLogFilter”

警告:不要在类过滤器上使用@Component 注释。

关于Spring Boot如何在没有注释的情况下设置过滤器的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38243065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com