韦德国际_韦德国际1946官方网站_韦德国际1946手机版
做最好的网站

HandlerInterceptor拦截器的使用

日期:2019-05-22编辑作者:韦德国际1946官方网站
 

HandlerInterceptor拦截器的使用。拦截器的利用手续:一、编写三个拦截器,实现HandlerInterceptor接口二、编写1个类,继承WebMvcConfigurerAdapter抽象类,将其放入Spring容器中,然后重写addInterceptors()方法,并调用给的参数InterceptorRegistry.addInterceptor()把自个儿编写的拾分拦截器作为参数加进去。

环境

  • SpringBoot 环境

韦德国际1946官方网站,方案1,(近似)总拦截器,拦截全体url

<mvc:interceptors>
    <bean class="com.app.mvc.MyInteceptor" />
</mvc:interceptors>

干什么叫“近似”,前边说了,Spring未有总的拦截器。

<mvc:interceptors/>会为每3个HandlerMapping,注入三个拦截器。总有二个HandlerMapping是足以找到Computer的,最多也只找到一个管理器,所以那几个拦截器总会被试行的。起到了总拦截器的效果。

 

一.使用背景

Web项目中供给看清http接口用户Post上来的数量是不是合法,就算违法要另做管理,用户Post上来的数目是Json格局的,我们用了@RequestBody标识自动将json方式的交由封装为2个Model对象,那样一来,大家就不能够看清在自动封装进程中是否出现了特别,此时便想起了springMVC中的interceptor,用于拍卖请求从前,做一些管理,我们能够撤废@RequestBody标识,然后在interceptor中获得请求体,检查是或不是吻合json需要,就是否三个valid interceptor,可是此间出现了1个难题: 
httpServletRequest的央浼内容,只好被读取三回,在interceptor中读取了的话,在controller中便无法读取了,化解办法是,读取到的请求内容存起来,然后在controller中一贯运用。 
此处运用了interceptor的壹种,HandlerInterceptor,能够写三个小例子来记一下是怎么接纳的!

一向贴代码:

相关

  • spring-boot在web层面使用了spring mvc的拦截器作用,并从未做任何管理,故大家只要熟谙mvc的拦截器,自但是然能够将拦截器到场到spring-boot上
  • 已知request 请求管理顺序,Filter -> HandlerInterceptor 拦截器 -> AOP
  • Filter 过滤器属于 Servlet 范畴的API, 与Spring 没什么关联
  • HandlerInterceptor 拦截器 属于Spring 的范畴
  • 唯有通过 dispatchservlet 的伏乞,才会走拦截器chain,我们自定义的的servlet 请求是不会被堵住的
  • 但过滤器会拦截全数请求

方案二, (近似) 总拦截器, 拦截相配的UPAJEROL。

<mvc:interceptors >  
  <mvc:interceptor>  
        <mvc:mapping path="/user/*" /> <!-- /user/*  -->  
        <bean class="com.mvc.MyInteceptor"></bean>  
    </mvc:interceptor>  
</mvc:interceptors>  

就是比 方案一多了叁个ULacrosseL相称。

本文由韦德国际发布于韦德国际1946官方网站,转载请注明出处:HandlerInterceptor拦截器的使用

关键词: spring 拦截器 boot SpringBoot bv1946