如何在SpringBoot下注冊(cè)一個(gè)Filter

兩種方式
第一種通過FilterRegistrationBean

 @Bean
 public FilterRegistrationBean filterRegistrationBean(){
    return new FilterRegistrationBean(errorPageFilter());
 }

@Bean
public Filter errorPageFilter(){
  ErrorPageFilter errorPageFilter = new ErrorPageFilter();
  ErrorPage notFind = new ErrorPage("/404");
  errorPageFilter.addErrorPages(notFind);
  return errorPageFilter;
}

第二種通過DelegatingFilterProxyRegistrationBean

@Bean
public DelegatingFilterProxyRegistrationBean delegatingFilterProxyRegistrationBean(){
  return new DelegatingFilterProxyRegistrationBean("errorPageFilter");
}

@Bean("errorPageFilter")
public Filter errorPageFilter(){
  ErrorPageFilter errorPageFilter = new ErrorPageFilter();
  ErrorPage notFind = new ErrorPage("/404");
  errorPageFilter.addErrorPages(notFind);
  return errorPageFilter;
}

二者都是繼承同一個(gè)父類AbstractFilterRegistrationBean,只是DelegatingFilterProxyRegistrationBean還實(shí)現(xiàn)了ApplicationContextAware,注入了ApplicationContext實(shí)例,用于查找指定的Filter實(shí)例,最終構(gòu)建的是一個(gè)代理Filter實(shí)例(DelegatingFilterProxy);FilterRegistrationBean中維護(hù)的是目標(biāo)Filter,結(jié)果都是將Filter注冊(cè)到ServletContext中,推薦使用FilterRegistrationBean。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.1 spring IoC容器和beans的簡(jiǎn)介 Spring 框架的最核心基礎(chǔ)的功能是IoC(控制反轉(zhuǎn))容器,...
    simoscode閱讀 6,844評(píng)論 2 22
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,931評(píng)論 1 92
  • 一、影響最深的三部分 1.我們組講課 2.情緒 3.情操 二、影響深的原因 1.時(shí)間馬上到了,感覺挺著急的。 2....
    張芳_閱讀 166評(píng)論 0 1
  • 蕭瑟秋風(fēng),荒蕪渚岸,孤舟帆落波清。 一羽飛鴻,霜天寒水飄零。 蘆花蔓草沙洲冷,棹閑停、寂寞浮萍。 滿江紅,如血?dú)堦?..
    沙子666閱讀 413評(píng)論 0 4

友情鏈接更多精彩內(nèi)容