SpringBoot–基础–04–拦截器
拦截器
- 实现HandlerInterceptor接口
- 注册拦截器
一、代码结构
MyMvcConfig
//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {
//注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
//SpringBoot已经做好了静态资源(*.css , *.js)映射不拦截
registry.addInterceptor(new LoginHandlerInterceptor())
//拦截所有
.addPathPatterns("/**")
//排除 /login
.excludePathPatterns("/login");
}
}
UserController
/**
* 描述该类- JPA
*
* @author zhoufei
* @class: UserController
* @date 2021/1/13 16:50
* @Verson 1.0 -2021/1/13 16:50
* @see
*/
@RestController
public class UserController {
@RequestMapping("/login")
public Object login() {
Map<String,String> map=new HashMap<>();
map.put("userName", "小明");
return map;
}
@RequestMapping("/getById")
public Object getById() {
Map<String,String> map=new HashMap<>();
map.put("userName", "小明");
return map;
}
}
LoginHandlerInterceptor
/**
* 登陆检查,
*/
public class LoginHandlerInterceptor implements HandlerInterceptor {
//目标方法执行之前
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String requestURL = request.getRequestURL().toString();
System.out.println("requestURL:"+requestURL);
//false时,拦截器执行到此处将不会继续操作
//true时,继续执行后面的操作
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 {
}
}
二、测试
2.1、不拦截
2.2、拦截
代码位置
https://gitee.com/DanShenGuiZu/learnDemo/tree/mysql_mybaties_DB/springboot-learn/springboot-3