• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    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
    • 閱讀 ( 754 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆