繁体   English   中英

Spring Boot拦截器无论如何都被称为排除模式

[英]Spring Boot Interceptor called anyway of exclude pattterns

已向以下人员注册拦截器:

@Override
protected void addInterceptors(final InterceptorRegistry registry) {
    registry.addInterceptor(new ThymeleafLayoutInterceptor()).addPathPatterns("/**").excludePathPatterns("/json/**").excludePathPatterns("/static/**");
}

以我的理解,对于每个请求都应调用拦截器,但对于
/静态的/
要么
/ json /在他们的路径。 但是,拦截器似乎是从每个资源中调用的,也都是从路径中具有静态的资源调用的。

我的拦截器的PostHandle方法中的打印输出

final ResourceHttpRequestHandler h = (ResourceHttpRequestHandler) handler;
System.out.println(h.getLocations());

结果是

[class path resource [static/]]

我尝试过像
1. /静态/ **
2. / static / *,
3. / static /
4.静态/

这怎么可能?我该如何解决这个问题?

您两次调用excludePathPatterns。

这应该做的工作

@Override
protected void addInterceptors(final InterceptorRegistry registry) {
    registry.addInterceptor(new ThymeleafLayoutInterceptor())
            .addPathPatterns("/**")
            .excludePathPatterns("/json/**", "/static/**");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM