拦截器在我们平时的项目中用处有很多,如:日志记录(我们后续章节会讲到)、用户登录状态拦截、安全拦截等等。而SpringBoot内部集成的是SpringMVC控制框架,所以使用起来跟SpringMVC没有区别,只是在配置上有点不同。
public class LoginInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
if(request.getSession().getAttribute("user") == null){
response.sendRedirect("/admin/user");
return false;
}
return true;
}
}
SpringBoot配置拦截器路径(SpringBoot已经配置了静态资源映射):
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor())
.addPathPatterns("/admin/**")
.excludePathPatterns("/admin/user/login");
}