一张思维导图带你打通SpringBoot自定义拦截器的思路
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
// 在请求处理之前进行调用(Controller方法调用之前)
System.out.println("拦截请求:" + request.getRequestURL());
// 可以进行一些前处理工作,比如权限校验,参数校验等
// 返回true继续请求,返回false中断请求
return true;
}
}
在Spring Boot中配置自定义拦截器,需要在配置类中添加拦截器注册方法:
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加自定义拦截器
registry.addInterceptor(new MyInterceptor())
.addPathPatterns("/**") // 拦截所有请求路径
.excludePathPatterns("/login"); // 排除登录接口
}
}
这样就可以将自定义的拦截器应用到Spring Boot的Web请求中了。
评论已关闭