springboot拦截器的使用

1.创建一个类,继承与HandlerInterceptor,并实现3个方法。在preHandle方法中,调用controller组件前被调用,可以在此做业务逻辑。下面是每次调用前,都进行登录的判断。

public class LoginInterceptor implements HandlerInterceptor {

    private Logger LOGGER = LoggerFactory.getLogger(LoginInterceptor.class);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        LOGGER.info("preHandle");
        Object object = request.getSession().getAttribute("name");
        if(null!=object&&object instanceof String){
            String user = (String)object;
            if((user.equals("fangdingjie"))){
                LOGGER.info("登录成功");
                return true;
            }
        }
        LOGGER.info("请登录");
        return false;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        LOGGER.info("postHandle");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        LOGGER.info("afterCompletion");
    }
}

2.在App启动类中创建一个子类,继承于WebMvcConfigurationSupport,并使用@Configuration注解.
addPathPatterns对指定的路径进行拦截,"/**"表示所有路径都进行拦截
excludePathPatterns表示不拦截的路径

 @Configuration
    static class WebMvcConfigurer extends WebMvcConfigurationSupport {
        //增加拦截器
        public void addInterceptors(InterceptorRegistry registry){
            registry.addInterceptor(new LoginInterceptor())    //指定拦截器类
                    .addPathPatterns("/**") //指定该类拦截的url
                    .excludePathPatterns("/login");;       //不拦截
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,156评论 19 139
  • 使用注解@Configuration 配置拦截器 继承WebMvcConfigurerAdapter 重写addI...
    打铁大师阅读 320评论 0 1
  • 姓名: 李小娜 [嵌牛导读]: SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,...
    n184阅读 3,217评论 0 4
  • 是的 我清晰的记起 我一遍又一遍的确定 我听见了梦的声音 说了什么 是语言里透露出的乡土气息 不再为追星逐月而着急...
    瞿静阅读 247评论 0 3
  • 文:远山 |插图:来自网络 那些年,一到正月十五下晌,吃了炸元宵之后,我就热切地盼望着天黑。天黑了,才能跟着哥哥去...
    YuanshanTan阅读 1,825评论 33 78