.addPathPatterns("/**")
时间: 2023-07-08 17:22:13 浏览: 74
这段代码是在Java中使用拦截器注册表(InterceptorRegistry)对拦截器进行路径匹配,即指定需要拦截的请求路径。
".addPathPatterns("/**")"的作用是将拦截器拦截的请求路径设置为所有路径,即拦截所有请求。其中,"/**"表示匹配所有路径,包括多级路径和路径中的文件名。如果我们只想拦截某些特定的路径,可以使用类似"/api/**"的路径模式来进行匹配。
通过这种方式,我们可以根据具体的需求来指定需要拦截的请求路径,从而实现各种功能,比如请求的权限验证、日志记录、异常处理等。同时,我们也可以通过excludePathPatterns方法来排除某些请求路径,使得这些请求不会被拦截器拦截。
相关问题
public class InterceptorConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new JwtInterceptor()) // .addPathPatterns("/admin/**") // .addPathPatterns("/patient/**") // .addPathPatterns("/doctor/**") .addPathPatterns("/666") .excludePathPatterns("/patient/pdf") .excludePathPatterns("/**/login"); } }
您好!根据您提供的代码段,这是一个拦截器配置类。在这个类中,您通过实现`WebMvcConfigurer`接口,并覆盖`addInterceptors`方法来配置拦截器。
在`addInterceptors`方法中,您通过`registry.addInterceptor(new JwtInterceptor())`来添加一个名为`JwtInterceptor`的拦截器。接下来,您使用`addPathPatterns`方法为特定的URL路径添加拦截规则。您注释掉了`.addPathPatterns("/admin/**")`、`.addPathPatterns("/patient/**")`和`.addPathPatterns("/doctor/**")`这些路径的拦截规则,而使用`.addPathPatterns("/666")`添加了一个路径为`/666`的拦截规则。
此外,您使用`.excludePathPatterns`方法来排除一些路径不被拦截。您排除了`/patient/pdf`和`/**/login`这两个路径,即这两个路径不会被`JwtInterceptor`拦截。
这样配置后,当请求的URL路径匹配到拦截规则时,将会触发`JwtInterceptor`的拦截逻辑。其他未匹配到拦截规则的路径将不会被拦截器处理。
registry.addInterceptor(loginTicketInterceptor) .addPathPatterns("/","/comments","/admin/blogs","/blog/*","/**"); 如何排除掉一些不需要拦截的请求
在 SpringMVC 中,我们可以通过 `excludePathPatterns()` 方法来排除不需要拦截的请求。
例如,我们要排除掉 URL 为 "/login" 的请求,可以在注册拦截器时添加如下代码:
```java
registry.addInterceptor(loginTicketInterceptor)
.addPathPatterns("/", "/comments", "/admin/blogs", "/blog/*", "/**")
.excludePathPatterns("/login");
```
上面的代码中,`excludePathPatterns()` 方法用于排除掉 URL 为 "/login" 的请求,这些请求将不会被 `loginTicketInterceptor` 拦截处理。
还可以通过 `antMatchers()` 方法指定需要排除的请求,例如:
```java
registry.addInterceptor(loginTicketInterceptor)
.addPathPatterns("/", "/comments", "/admin/blogs", "/blog/*", "/**")
.excludePathPatterns("/login")
.excludePathPatterns("/css/**", "/js/**", "/images/**"); // 排除静态资源
```
上面的代码中,除了排除 URL 为 "/login" 的请求外,还通过 `excludePathPatterns()` 方法排除了 URL 以 "/css/"、"/js/"、"/images/" 开头的静态资源请求。