springBoot项目如何配置拦截器
1.首先需要需要创建一个springBoot项目,然后在目录下创建一个config目录。
2.创建拦截器类
/**
* 拦截器
* @author xiyunhai
* @date 2023/04/12 18:12
**/
public class MyInterceptor implements HandlerInterceptor {
/**
* 访问控制器方法前执行
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// System.out.println("拦截器拦截成功");
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT, HEAD");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Token, adminID");
response.setHeader("Access-Control-Max-Age", "3600");
return HandlerInterceptor.super.preHandle(request, response, handler);
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}
创建配置拦截器类
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 配置拦截器
* @author songx
* @date 2023/04/12 18:18
**/
@Configuration
public class WebConfig implements WebMvcConfigurer {
/**
* 添加Web项目的拦截器
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 对所有访问路径,都通过MyInterceptor类型的拦截器进行拦截
// addPathPatterns(/**):这个是所有的请求会被拦截
//排除的路径:静态资源路径。防止被JdkApiInterceptor拦截
// excludePathPatterns():就是要放行哪些路径
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/openAi","/login", "/index.html", "/user/login", "/css/**", "/images/**", "/js/**", "/fonts/**");
}
}
然后我们启动springBoot项目,当我们在进行访问后端接口时,前置拦截器就会进行拦截。