《Spring Boot框架入门到实践》(11)spring boot使用拦截器

拦截器详解
什么是拦截器?
Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。
例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。

spring boot使用拦截器步骤

  1. 按照Spring MVC的方式编写一个拦截类
    创建一个类实现HandlerInterceptor接口
    在这里插入图片描述
    HandlerInterceptor接口有3个方法,这里只是简单的实现一下使用拦截器的步骤。

    preHandle() 方法:该方法会在控制器(Handler)方法前执行,其返回值表示是否中断后续操作。当其返回值为true时,表示继续向下执行;当其返回值为false时,会中断后续的所有操作(包括调用下一个拦截器和控制器类中的方法执行等)。

    postHandle()方法:该方法会在控制器方法调用之后,且解析视图之前执行。可以通过此方法对请求域中的模型和视图做出进一步的修改。

    afterCompletion()方法:该方法会在整个请求完成,即视图渲染结束之后执行。可以通过此方法实现一些资源清理、记录日志信息等工作。

  2. 编写一个配置类继承WebMvcConfigurationSupport方法,然后注册拦截器。
    因为此类是配置类所以需要添加@Configuration注解。
    注册拦截器的方法中需要new拦截类,然后利用addInterceptors方法点出添加需要拦截的类和不需要拦截的类,addPathPatternsexcludePathPatterns
    在这里插入图片描述
    WebMvcConfigurationSupport的addInterceptors方法作用是添加拦截器,然后使用InterceptorRegistry点出addInterceptor注册拦截器。

  3. 运行一个被拦截的方法,如果出现了preHandle方法中添加的语句,就说明添加拦截器成功了。
    在这里插入图片描述

发布了50 篇原创文章 · 获赞 13 · 访问量 1877

猜你喜欢

转载自blog.csdn.net/qq_43581078/article/details/103570295