springboot 静态资源映射,configuration,addResourceHandlers如何添加拦截器
时间: 2024-12-10 08:34:58 浏览: 17
Spring Boot 中的静态资源映射通常是通过`WebMvcConfigurer`接口或者在`spring.mvc.static-path-pattern`属性中配置来处理的。当你想要添加拦截器到静态资源请求时,可以按照以下步骤操作:
1. **使用`WebMvcConfigurerAdapter`**:
```java
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class StaticResourcesConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/")
.setOrder(Ordered.HIGHEST_PRECEDENCE)
// 添加拦截器
.addInterceptors(new MyInterceptor());
}
// 自定义拦截器
private static class MyInterceptor implements HandlerInterceptor {
// 实现preHandle、postHandle和afterCompletion方法
// ...
}
}
```
2. **使用@ConfigurationProperties**: 如果你想动态配置拦截器,可以使用`@ConfigurationProperties`注解将配置移到外部如YAML文件中。
3. **创建自定义拦截器**:
创建一个实现了`HandlerInterceptor`接口的类,比如上面提到的`MyInterceptor`,在这个类里编写预处理(`preHandle`)、处理(`postHandle`)以及后续处理(`afterCompletion`)的方法,以定制对静态资源的拦截逻辑。
阅读全文