Spring Boot-定义拦截器(七)
在web项目 我们常常使用拦截器做权限验证和登陆验证
1.创建一个拦截器实现类 标注@Componet
@Component public class LoginInterceputer implements HandlerInterceptor { /** * 进入controller层之前拦截请求 * @param httpServletRequest * @param httpServletResponse * @param o 为函数对象 * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { System.out.println(o); System.out.println("进入controller之前拦截"); return true; } @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { System.out.println("--------------处理请求完成后视图渲染之前的处理操作---------------"); } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { System.out.println("---------------视图渲染之后的操作-------------------------0"); } }
2.通过javaconfig的方式进行拦截器配置
@Configuration public class WebConfig implements WebMvcConfigurer { @Autowired LoginInterceputer loginInterceputer; @Override public void addInterceptors(InterceptorRegistry registry) { // 自定义拦截器,添加拦截路径和排除拦截路径 registry.addInterceptor(loginInterceputer).addPathPatterns(new String[]{"/**"}).excludePathPatterns(new String[]{"/login"}); } }