如何在SpringBoot下注冊一個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;
}

二者都是繼承同一個父類AbstractFilterRegistrationBean,只是DelegatingFilterProxyRegistrationBean還實現了ApplicationContextAware,注入了ApplicationContext實例,用于查找指定的Filter實例,最終構建的是一個代理Filter實例(DelegatingFilterProxy);FilterRegistrationBean中維護的是目標Filter,結果都是將Filter注冊到ServletContext中,推薦使用FilterRegistrationBean。

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

相關閱讀更多精彩內容

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

友情鏈接更多精彩內容