最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot工程中使用filter過(guò)程解析

 更新時(shí)間:2020年03月07日 13:58:12   作者:程序曉猿  
這篇文章主要介紹了springboot工程中使用filter過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一、什么是filter

過(guò)濾器實(shí)際上就是用來(lái)對(duì)web資源進(jìn)行攔截,做一些處理后再交給下一個(gè)過(guò)濾器或servlet處理 通常都是用來(lái)攔截request進(jìn)行處理的,也可以對(duì)返回的response進(jìn)行攔截處理 。

filter可以在請(qǐng)求到達(dá)servlet前或者請(qǐng)求完成響應(yīng)后進(jìn)行后續(xù)的處理。

二、在springboot工程中使用filter

創(chuàng)建一個(gè)filter,并使用注解配置該filter的名稱和攔截路徑等屬性

@WebFilter(filterName = "AFilter",urlPatterns = "/*")
public class AFilter implements Filter {
  public void destroy() {
  }

  public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
    System.out.println("AFilter 開(kāi)始執(zhí)行");
    chain.doFilter(req, resp);
    System.out.println("AFilter 執(zhí)行完成");
  }

  public void init(FilterConfig config) throws ServletException {

  }

}

上面的代碼在doFilter方法中寫(xiě)該過(guò)濾器的具體執(zhí)行邏輯,chain.doFilter用來(lái)把請(qǐng)求交給下一個(gè)過(guò)濾器或者servlet。

在啟動(dòng)類(lèi)上使用注解@ServletComponentScan來(lái)掃描自定義的過(guò)濾器

@SpringBootApplication
@ServletComponentScan
public class BillAdminApplication {
  public static void main(String[] args) {
    SpringApplication.run(BillAdminApplication.class,args);
  }
}

這樣自定義的過(guò)濾器就會(huì)被掃描到,就可以起作用。

三、過(guò)濾器的執(zhí)行順序

如果項(xiàng)目中配置了多個(gè)過(guò)濾器,并且使用的是注解配置,請(qǐng)求到來(lái)時(shí)過(guò)濾器名稱字母順序靠前的過(guò)濾器會(huì)先執(zhí)行;給客戶端返回響應(yīng)時(shí)過(guò)濾器的執(zhí)行順序和請(qǐng)求時(shí)的相反。

四、注意

使用以上這種方式來(lái)加載自定義過(guò)濾器時(shí),不能自定義過(guò)濾器的執(zhí)行順序,只能通過(guò)限定類(lèi)名順序來(lái)達(dá)到目的。

五、使用FilterRegistrationBean 來(lái)注冊(cè)過(guò)濾器

當(dāng)需要自定義過(guò)濾器的執(zhí)行順序時(shí),可以使用FilterRegistrationBean來(lái)實(shí)現(xiàn)。

先創(chuàng)建一個(gè)過(guò)濾器,比如上邊的AFilter.java,不再需要注解@WebFilter,

再啟動(dòng)類(lèi)或者配置類(lèi)中注入一個(gè)如下的bean

@Bean
  public FilterRegistrationBean registrationBean1(){
    FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean();
    filterRegistrationBean.setFilter(new AFilter());
    filterRegistrationBean.addUrlPatterns("/*");
    filterRegistrationBean.setOrder(2);
    return filterRegistrationBean;
  }

使用這種方式,創(chuàng)建一個(gè)filterRegistrationBean對(duì)象,再設(shè)置其相關(guān)屬性,可以通過(guò)order屬性來(lái)設(shè)置過(guò)濾器的執(zhí)行順序,order值越小表示過(guò)濾器的優(yōu)先級(jí)越高,會(huì)先執(zhí)行。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JDBC編程實(shí)現(xiàn)文件、圖片的存儲(chǔ)方法

    JDBC編程實(shí)現(xiàn)文件、圖片的存儲(chǔ)方法

    這篇文章主要介紹了JDBC編程實(shí)現(xiàn)文件、圖片的存儲(chǔ)方法,以實(shí)例形式分析了Java基于JDBC操作數(shù)據(jù)庫(kù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • SpringMVC中@controllerAdvice注解的詳細(xì)解釋

    SpringMVC中@controllerAdvice注解的詳細(xì)解釋

    剛接觸SpringMVC應(yīng)該很少會(huì)見(jiàn)到這個(gè)注解,其實(shí)它的作用非常大,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中@controllerAdvice注解的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • Java包裝類(lèi)的概述與應(yīng)用

    Java包裝類(lèi)的概述與應(yīng)用

    包裝類(lèi)使用起來(lái)非常方便,但是沒(méi)有對(duì)應(yīng)的方法來(lái)操作這些基本數(shù)據(jù)類(lèi)型,可以使用一個(gè)類(lèi),把基本類(lèi)型的數(shù)據(jù)裝起來(lái),在類(lèi)中定義一些方法,我們可以使用類(lèi)中的方法來(lái)操作這些基本類(lèi)型的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Java包裝類(lèi)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • SpringBoot多數(shù)據(jù)源配置并通過(guò)注解實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源

    SpringBoot多數(shù)據(jù)源配置并通過(guò)注解實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源

    本文主要介紹了SpringBoot多數(shù)據(jù)源配置并通過(guò)注解實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 在mybatis 中使用if else 進(jìn)行判斷的操作

    在mybatis 中使用if else 進(jìn)行判斷的操作

    這篇文章主要介紹了在mybatis 中使用if else 進(jìn)行判斷的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • IDEA全局查找關(guān)鍵字的用法解讀

    IDEA全局查找關(guān)鍵字的用法解讀

    這篇文章主要介紹了IDEA全局查找關(guān)鍵字的用法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • java解析Excel/導(dǎo)入信息到Excel方式

    java解析Excel/導(dǎo)入信息到Excel方式

    這篇文章主要介紹了java解析Excel/導(dǎo)入信息到Excel方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • SpringBoot整合FTP使用示例教程

    SpringBoot整合FTP使用示例教程

    這篇文章主要介紹了SpringBoot整合FTP使用示例教程,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Spring?Boot?配置文件類(lèi)型properties?格式與yml?格式

    Spring?Boot?配置文件類(lèi)型properties?格式與yml?格式

    這篇文章主要介紹了Spring?Boot?配置文件類(lèi)型properties?格式與yml?格式,文章圍繞主題展開(kāi)詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • java常用工具類(lèi) 數(shù)字工具類(lèi)

    java常用工具類(lèi) 數(shù)字工具類(lèi)

    這篇文章主要為大家詳細(xì)介紹了java常用工具類(lèi)中的數(shù)字工具類(lèi),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評(píng)論

安庆市| 安阳县| 阳山县| 钟祥市| 金湖县| 百色市| 南阳市| 吴堡县| 甘南县| 延长县| 黔南| 车险| 大安市| 凤阳县| 永吉县| 陈巴尔虎旗| 麻阳| 什邡市| 广东省| 平原县| 沈阳市| 云林县| 高陵县| 丰原市| 黔西县| 封丘县| 繁峙县| 黄冈市| 突泉县| 黔南| 芦溪县| 元朗区| 内乡县| 涞水县| 澄城县| 东宁县| 志丹县| 林口县| 潮安县| 石景山区| 玉林市|