spring boot (十七)拦截器定义

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lh87270202/article/details/84099481

1、拦截器配置

@Configuration
public class WebMvcConfigurer extends WebMvcConfigurerAdapter {
    @Autowried
    private AuthInterceptor authInterceptor;
    @Autowried
    private HttpInterceptor httpInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        /**
         * 拦截器按照顺序执行
         */
        registry.addInterceptor(httpInterceptor);
        registry.addInterceptor(authInterceptor).addPathPatterns("/**").excludePathPatterns("/login"); 
        super.addInterceptors(registry);
    }
 
}

2.定义拦截器

public class AuthInterceptor  implements HandlerInterceptor {
    /**
     * 在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行
     * (主要是用于进行资源清理工作)
     */
    @Override
    public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {
        //after
 
    }
 
    /**
     * 请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)
     */
    @Override
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
            throws Exception {
        //post
 
    }
    /**
     * 在请求处理之前进行调用(Controller方法调用之前)
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception {
        //一般可以进行权限验证request.getSession
        return true; //放行
    } 
}

猜你喜欢

转载自blog.csdn.net/lh87270202/article/details/84099481