如何使用拦截器Interceptor
回顾一下:springMVC时怎么用?自己写个Interceptor,继承HandlerInterceptor
然后在xml中配置
springboot使用拦截器,方法差不多:
第一步:定义一个拦截器
public class AccessInterceptor implements HandlerInterceptor{
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("进入 AccessInterceptor");
return true;//返回true表示放行
}
第二步:配置(@Configuration)该拦截器
@Configuration//表示这是一个配置,springboot,麻烦你读取这个配置
public class WebConfig extends WebMvcConfigurerAdapter{
@Override
public void addInterceptors(InterceptorRegistry registry) {
//定义要拦截的路径
String[] addPathPatterns= {"/add"};
//定义不拦截的路径
String[] excludePathPatterns= {"/update"};
registry.addInterceptor(new AccessInterceptor()).addPathPatterns(addPathPatterns).excludePathPatterns(excludePathPatterns);
//registry.addInterceptor(new AccessInterceptor()).addPathPatterns("/add").excludePathPatterns("/update");
}
第三步:测试即可
http://localhost:8080/update 不拦截
http://localhost:8080/add 拦截
@RestController
public class UserController {
@GetMapping("add")
public String add()
{
return "add";
}
@GetMapping("update")
public String update()
{
return "update";
}
}