springboot拦截器有两种方式配置,推荐第一种,第二种官方不推荐使用,拦截器最常用的场景是做角色权限资源控制,接口请求日志打印。
1. 实现HandlerInterceptor
2. 继承HandlerInterceptorAdapter
1. 实现HandlerInterceptor
1.1 创建拦截类, 实现HandlerInterceptor
public class MyHandlerInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String url = request.getRequestURL().toString();
String method = request.getMethod();
String uri = request.getRequestURI();
System.out.println(url);
System.out.println(method);
System.out.println(uri);
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
1.2 创建拦截器配置类,实现WebMvcConfigurer,设置拦截路径
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 自定义拦截器,添加拦截路径和排除拦截路径
registry.addInterceptor(new MyHandlerInterceptor()).addPathPatterns("/**");
}
}
2. 继承HandlerInterceptorAdapter
2.1 创建拦截类,继承HandlerInterceptorAdapter
2.2 创建拦截器配置类,继承WebMvcConfigurerAdapter,设置拦截路径