Spring MVC Restful API的拦截

Spring MVC Restful API的拦截机制的实现有:过滤器Filter、拦截器Interceptor、切片Aspect。接下来会为大家介绍这三种拦截机制的具体实现。

东西/原料

  • IntelliJ IDEA

过滤器Filter

  1. 1

    起首建立一个过滤器TimeFilter,这个过滤器实现了Filter接口,有三个默认的方式,别离是init(FilterConfig arg0)、destroy()、doFilter(ServletRequest request, ServletResponse response, FilterChain chain),此中doFilter是真正实现阻挡操作的。

  2. 2

    若是想让过滤器TimeFilter起感化,只需要在TimeFilter类的上面加上@Componet注解即可。若是不利用@Componet注解,那么若何利用过滤器呢?我们建立一个WebConfig类,这个类担当WebMvcConfigurerAdapter,我们建立一个FilterRegistrationBean,插手Filter的设置装备摆设,需要注重url的过滤法则。错误谬误是:只能拿到http的请乞降响应,并不知道是哪个节制器哪个方式处置的。

    END

阻挡器Interceptor

  1. 1

    阻挡器Interceptor是Spring框架自己实现的,我们建立一个类TimeInterceptor,这个类实现HandlerInterceptor的接口,我们经由过程这种体例界说一个阻挡器,这个阻挡器默认的方式有:preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)、postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
         ModelAndView modelAndView)、afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex),我们按照需要写具体的实现,无论方式是否抛出异常城市走到afterCompletion,preHandle若是返回false则不会挪用后面的方式。

  2. 2

    阻挡器Interceptor要想起感化,只在类上添加@Component注解是不敷的,我们还需要额外的设置装备摆设。我们依旧利用WebConfig类,这个类担当WebMvcConfigurerAdapter,addInterceptors方式注册阻挡器。

    END

切片Aspect

  1. 1

    Spring中的切片Aspect阻挡,我们在界说切点的时辰设置阻挡法则,例如阻挡所有UserController的方式等。在切片类上利用@Aspec和@Component注解即可生效。

    END

注重事项

  • 三种阻挡操作的体例需要操练才能更快把握。
  • 发表于 2020-03-21 19:00
  • 阅读 ( 733 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
联系我们:uytrv@hotmail.com 问答工具