SpringBoot 2 快速整合 Filter過程解析
概述
SpringBoot 中沒有 web.xml, 我們無法按照原來的方式在 web.xml 中配置 Filter 。但是我們可以通過 JavaConfig(@Configuration +@Bean)方式進行配置。通過FilterRegistrationBean 將自定義 Filter 添加到 SpringBoot 的過濾鏈中。
實戰(zhàn)操作
實戰(zhàn)操作通過定義一個攔截所有訪問項目的URL的 Filter來進行演示的。
首先定義一個統一訪問 URL 攔截的 Filter。代碼如下:
public class UrlFilter implements Filter {
private Logger log = LoggerFactory.getLogger(UrlFilter.class);
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
String requestURI = httpServletRequest.getRequestURI();
StringBuffer requestURL = httpServletRequest.getRequestURL();
log.info("requestURI:" +requestURI+" "+"requestURL:"+requestURL);
chain.doFilter(httpServletRequest, response);
}
}
通過 javaConfig方式配置 SpringBoot 過濾鏈類 FilterRegistrationBean,具體代碼如下:
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean filterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new UrlFilter());
List<String> urlList = new ArrayList<String>();
urlList.add("/*");
registration.setUrlPatterns(urlList);
registration.setName("UrlFilter");
registration.setOrder(1);
return registration;
}
}
FilterRegistrationBean 中方法介紹:
- registration.setFilter(Filter filter):設置我們自定義Filter對象。
- registration.setUrlPatterns(Collection urlPatterns):設置自定義Filter需要攔截的URL的集合。
- registration.setName(String name): 設置自定義Filter名稱。
- registration.setOrder(int order):設置自定義Filter攔截順序。
測試
啟動 SpirngBoot 項目并通過游覽器訪問我們的項目下的 index.html。


以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java并發(fā)系列之JUC中的Lock鎖與synchronized同步代碼塊問題
這篇文章主要介紹了Java并發(fā)系列之JUC中的Lock鎖與synchronized同步代碼塊,簡單介紹了lock鎖及鎖的底層知識,結合案例給大家介紹的非常詳細,需要的朋友可以參考下2022-04-04
詳解WebSocket+spring示例demo(已使用sockJs庫)
本篇文章主要介紹了WebSocket spring示例demo(已使用sockJs庫),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
springboot 用監(jiān)聽器統計在線人數案例分析
這篇文章主要介紹了springboot 用監(jiān)聽器統計在線人數案例分析,質是統計session 的數量,思路很簡單,具體實例代碼大家參考下本文2018-02-02

