欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring boot過濾器FilterRegistrationBean實現(xiàn)方式

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

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

1:通過FilterRegistrationBean實例注冊

2:通過@WebFilter注解生效

這里選擇第一種,因為第二種不能設(shè)置過濾器之間的優(yōu)先級

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

通過實現(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("自定義過濾器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("自定義過濾器filter2觸發(fā),攔截url:"+request.getRequestURI());
    arg2.doFilter(arg0,arg1);
  }

}

通過在springboot的configuration中配置不同的FilterRegistrationBean實例,來注冊自定義過濾器

這里創(chuàng)建一個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(){
    //通過FilterRegistrationBean實例設(shè)置優(yōu)先級可以生效
    //通過@WebFilter無效
    FilterRegistrationBean<Test1Filter> bean = new FilterRegistrationBean<Test1Filter>();
    bean.setFilter(new Test1Filter());//注冊自定義過濾器
    bean.setName("flilter1");//過濾器名稱
    bean.addUrlPatterns("/*");//過濾所有路徑
    bean.setOrder(1);//優(yōu)先級,最頂級
    return bean;
  }
  @Bean
  public FilterRegistrationBean<Test2Filter> RegistTest2(){
    //通過FilterRegistrationBean實例設(shè)置優(yōu)先級可以生效
    //通過@WebFilter無效
    FilterRegistrationBean<Test2Filter> bean = new FilterRegistrationBean<Test2Filter>();
    bean.setFilter(new Test2Filter());//注冊自定義過濾器
    bean.setName("flilter2");//過濾器名稱
    bean.addUrlPatterns("/test/*");//過濾所有路徑
    bean.setOrder(6);//優(yōu)先級,越低越優(yōu)先
    return bean;
  }
}

其中

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

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

運行springboot,訪問/test/*請求如下圖,再訪問/v請求如下圖只攔截了過濾器1,而過濾器2路徑不匹配

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

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

相關(guān)文章

  • IDEA實現(xiàn)JDBC的操作步驟

    IDEA實現(xiàn)JDBC的操作步驟

    JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序,本文給大家介紹IDEA實現(xiàn)JDBC的操作步驟,感興趣的朋友一起看看吧
    2022-01-01
  • java中set集合的常用方法詳解

    java中set集合的常用方法詳解

    本篇文章給大家?guī)淼膬?nèi)容是關(guān)于java中set集合的常用方法詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。下面我們就來學(xué)習(xí)一下吧
    2021-11-11
  • 修改idea的這些啟動參數(shù),令你的idea健步如飛

    修改idea的這些啟動參數(shù),令你的idea健步如飛

    這篇文章主要介紹了修改idea的這些啟動參數(shù),令你的idea健步如飛~具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Springboot集成ProtoBuf的實例

    Springboot集成ProtoBuf的實例

    這篇文章主要介紹了Springboot集成ProtoBuf的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Spring監(jiān)聽器及定時任務(wù)實現(xiàn)方法詳解

    Spring監(jiān)聽器及定時任務(wù)實現(xiàn)方法詳解

    這篇文章主要介紹了Spring監(jiān)聽器及定時任務(wù)實現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Java實現(xiàn)消消樂中的消除功能

    Java實現(xiàn)消消樂中的消除功能

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)消消樂中的消除功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 基于Java的guava開源庫工具類

    基于Java的guava開源庫工具類

    guava是谷歌基于java封裝好的開源庫,這篇文章主要通過介紹幾個好用的guava工具類,感興趣的朋友可以參考下面文章內(nèi)容
    2021-09-09
  • 詳解Spring Cloud中Hystrix 線程隔離導(dǎo)致ThreadLocal數(shù)據(jù)丟失

    詳解Spring Cloud中Hystrix 線程隔離導(dǎo)致ThreadLocal數(shù)據(jù)丟失

    這篇文章主要介紹了詳解Spring Cloud中Hystrix 線程隔離導(dǎo)致ThreadLocal數(shù)據(jù)丟失,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • SpringBoot 集成 Jasypt 對數(shù)據(jù)庫加密以及踩坑的記錄分享

    SpringBoot 集成 Jasypt 對數(shù)據(jù)庫加密以及踩坑的記錄分享

    這篇文章主要介紹了SpringBoot 集成 Jasypt 對數(shù)據(jù)庫加密以及踩坑,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Spring通過<import>標(biāo)簽導(dǎo)入外部配置文件

    Spring通過<import>標(biāo)簽導(dǎo)入外部配置文件

    之前文章里我們講到Spring加載Xml配置文件的細(xì)節(jié),那么加載完了我們肯定要解析這個配置文件中定義的元素。這篇我們首先來分析下Spring是如何通過標(biāo)簽導(dǎo)入外部配置文件的。
    2021-06-06

最新評論