springboot的拦截器是否会拦截静态资源
时间: 2023-06-10 19:03:55 浏览: 67
是的,Spring Boot 的拦截器会拦截所有的请求,包括静态资源的请求。但是,你可以通过配置来忽略某些静态资源的请求。例如,在 Spring Boot 中,你可以使用 WebMvcConfigurer 接口的 addResourceHandlers 方法来添加静态资源处理程序,并指定需要忽略的路径。
相关问题
springboot拦截器静态资源
Spring Boot对静态资源的拦截器支持是通过WebMvcConfigurerAdapter类实现的。默认情况下,Spring Boot会自动配置静态资源的处理,并且提供了一组默认的静态资源映射规则。这些规则包括以下路径:
1. classpath:/META-INF/resources
2. classpath:/resources
3. classpath:/static
4. classpath:/public
如果你想自定义静态资源的映射规则,可以继承WebMvcConfigurerAdapter类,并覆盖其中的addResourceHandlers()方法。通过添加自定义的资源处理器和资源映射规则,你可以实现对静态资源的拦截器处理。
于SpringBoot的拦截器放行静态资源
在SpringBoot的拦截器中,我们可以通过addPathPatterns方法来指定需要拦截的请求路径,同时通过excludePathPatterns方法来指定需要放行的请求路径。对于静态资源,我们可以将它们的路径添加到excludePathPatterns方法中,从而将其放行,例如:
```java
@Configuration
public class MyInterceptorConfig implements WebMvcConfigurer {
@Autowired
private MyInterceptor myInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(myInterceptor).addPathPatterns("/**")
.excludePathPatterns("/static/**", "/css/**", "/js/**", "/images/**");
}
}
```
在上面的代码中,我们将/static、/css、/js、/images等静态资源路径添加到了excludePathPatterns方法中,从而将它们放行。这样,当请求这些静态资源时,拦截器就不会进行拦截了。