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

spring boot過(guò)濾器FilterRegistrationBean實(shí)現(xiàn)方式

 更新時(shí)間:2019年10月17日 08:50:25   作者:稚語(yǔ)希聽(tīng)  
這篇文章主要介紹了spring boot過(guò)濾器FilterRegistrationBean實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

有2種方式可以實(shí)現(xiàn)過(guò)濾器

1:通過(guò)FilterRegistrationBean實(shí)例注冊(cè)

2:通過(guò)@WebFilter注解生效

這里選擇第一種,因?yàn)榈诙N不能設(shè)置過(guò)濾器之間的優(yōu)先級(jí)

為了演示優(yōu)先級(jí),這里創(chuàng)建2個(gè)測(cè)試過(guò)濾器類:Test1Filter、Test2Filter

通過(guò)實(shí)現(xiàn)javax.servlet.Filter接口,覆蓋其doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)方法,決定攔截或放行

public class Test1Filter implements Filter {

  @Override
  public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
      throws IOException, ServletException {
    // TODO Auto-generated method stub
    HttpServletRequest request=(HttpServletRequest)arg0;
    System.out.println("自定義過(guò)濾器filter1觸發(fā),攔截url:"+request.getRequestURI());
    arg2.doFilter(arg0,arg1);
  }

}
public class Test2Filter implements Filter {
  @Override
  public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
      throws IOException, ServletException {
    // TODO Auto-generated method stub
    HttpServletRequest request=(HttpServletRequest)arg0;
    System.out.println("自定義過(guò)濾器filter2觸發(fā),攔截url:"+request.getRequestURI());
    arg2.doFilter(arg0,arg1);
  }

}

通過(guò)在springboot的configuration中配置不同的FilterRegistrationBean實(shí)例,來(lái)注冊(cè)自定義過(guò)濾器

這里創(chuàng)建一個(gè)configuration類

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.example.demo.filter.Test1Filter;
import com.example.demo.filter.Test2Filter;

@Configuration
public class DemoConfiguration {

  @Bean
  public FilterRegistrationBean<Test1Filter> RegistTest1(){
    //通過(guò)FilterRegistrationBean實(shí)例設(shè)置優(yōu)先級(jí)可以生效
    //通過(guò)@WebFilter無(wú)效
    FilterRegistrationBean<Test1Filter> bean = new FilterRegistrationBean<Test1Filter>();
    bean.setFilter(new Test1Filter());//注冊(cè)自定義過(guò)濾器
    bean.setName("flilter1");//過(guò)濾器名稱
    bean.addUrlPatterns("/*");//過(guò)濾所有路徑
    bean.setOrder(1);//優(yōu)先級(jí),最頂級(jí)
    return bean;
  }
  @Bean
  public FilterRegistrationBean<Test2Filter> RegistTest2(){
    //通過(guò)FilterRegistrationBean實(shí)例設(shè)置優(yōu)先級(jí)可以生效
    //通過(guò)@WebFilter無(wú)效
    FilterRegistrationBean<Test2Filter> bean = new FilterRegistrationBean<Test2Filter>();
    bean.setFilter(new Test2Filter());//注冊(cè)自定義過(guò)濾器
    bean.setName("flilter2");//過(guò)濾器名稱
    bean.addUrlPatterns("/test/*");//過(guò)濾所有路徑
    bean.setOrder(6);//優(yōu)先級(jí),越低越優(yōu)先
    return bean;
  }
}

其中

1第一個(gè)bean攔截所有路徑,而第二個(gè)只攔截/test/*路徑

2第一個(gè)bean優(yōu)先級(jí)設(shè)置了1,而第二個(gè)設(shè)置了6,越低越優(yōu)先,所以過(guò)濾器1應(yīng)該在過(guò)濾器2前面攔截

運(yùn)行springboot,訪問(wèn)/test/*請(qǐng)求如下圖,再訪問(wèn)/v請(qǐng)求如下圖只攔截了過(guò)濾器1,而過(guò)濾器2路徑不匹配

如果把.addUrlPatterns();中攔截路徑改成一樣/test/*,則所有請(qǐng)求,都會(huì)觸發(fā)2個(gè)過(guò)濾器,而且過(guò)濾器1永遠(yuǎn)在最先攔截

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

相關(guān)文章

  • arthas?jprofiler做復(fù)雜鏈路的調(diào)用分析

    arthas?jprofiler做復(fù)雜鏈路的調(diào)用分析

    這篇文章主要為大家介紹了arthas?jprofiler做復(fù)雜鏈路的調(diào)用分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 用Java編寫(xiě)一個(gè)簡(jiǎn)單的拼圖游戲全過(guò)程

    用Java編寫(xiě)一個(gè)簡(jiǎn)單的拼圖游戲全過(guò)程

    拼圖游戲是一種智力類游戲,玩家需要將零散的拼圖塊按照一定的規(guī)律組合起來(lái),最終拼成完整的圖案,這篇文章主要給大家介紹了關(guān)于用Java編寫(xiě)一個(gè)簡(jiǎn)單的拼圖游戲,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • Spring?容器初始化?register?與?refresh方法

    Spring?容器初始化?register?與?refresh方法

    這篇文章主要介紹了Spring?容器初始化?register?與?refresh方法,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Eclipse中配置Maven build打包的方法步驟

    Eclipse中配置Maven build打包的方法步驟

    這篇文章主要介紹了Eclipse中配置Maven build打包的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • springboot多模塊化整合mybatis,mapper自動(dòng)注入失敗問(wèn)題及解決

    springboot多模塊化整合mybatis,mapper自動(dòng)注入失敗問(wèn)題及解決

    這篇文章主要介紹了springboot多模塊化整合mybatis,mapper自動(dòng)注入失敗問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java多線程用法的實(shí)例詳解

    Java多線程用法的實(shí)例詳解

    這篇文章主要介紹了Java多線程用法的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能夠理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • springboot為異步任務(wù)規(guī)劃自定義線程池的實(shí)現(xiàn)

    springboot為異步任務(wù)規(guī)劃自定義線程池的實(shí)現(xiàn)

    本文主要介紹了springboot為異步任務(wù)規(guī)劃自定義線程池,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • java并查集算法帶你領(lǐng)略熱血江湖

    java并查集算法帶你領(lǐng)略熱血江湖

    這篇文章主要為大家介紹了java并查集算法,以大家熱愛(ài)的方式,帶你領(lǐng)略熱血江湖中的并查集算法,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • java實(shí)現(xiàn)簡(jiǎn)單網(wǎng)絡(luò)象棋游戲

    java實(shí)現(xiàn)簡(jiǎn)單網(wǎng)絡(luò)象棋游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單網(wǎng)絡(luò)象棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • MyBatis批量插入數(shù)據(jù)的三種方法實(shí)例

    MyBatis批量插入數(shù)據(jù)的三種方法實(shí)例

    由于項(xiàng)目需要生成多條數(shù)據(jù),并保存到數(shù)據(jù)庫(kù)當(dāng)中,項(xiàng)目使用了Spring+MyBatis,所以打算使用MyBatis批量插入,應(yīng)該要比循環(huán)插入的效果更好,下面這篇文章主要給大家介紹了關(guān)于MyBatis批量插入數(shù)據(jù)的三種方法,需要的朋友可以參考下
    2021-10-10

最新評(píng)論

称多县| 龙胜| 卫辉市| 武邑县| 万盛区| 阿拉尔市| 洛阳市| 阳江市| 张掖市| 三穗县| 松潘县| 宁化县| 织金县| 长兴县| 乌海市| 永福县| 铜鼓县| 大兴区| 绍兴县| 巴东县| 麻阳| 岫岩| 高州市| 微山县| 冀州市| 子长县| 和硕县| 云梦县| 汽车| 余江县| 多伦县| 肥城市| 宁远县| 富平县| 于田县| 天水市| 顺义区| 油尖旺区| 大宁县| 白山市| 万年县|