當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring Boot filter
生活随笔
收集整理的這篇文章主要介紹了
Spring Boot filter
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Spring Boot中自定義filter
本文我們將會講解如何在Spring Boot中自定義filter并指定執行順序。
定義Filter很簡單,我們只需要實現Filter接口即可,同時我們可指定@Order來確定其執行順序,我們定義兩個filter如下:
@Slf4j @Component @Order(1) public class TransactionFilter implements Filter {@Overridepublic void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException, ServletException{HttpServletRequest req = (HttpServletRequest) request;log.info("Starting a transaction for req : {}",req.getRequestURI());chain.doFilter(request, response);log.info("Committing a transaction for req : {}",req.getRequestURI());}// other methods } @Slf4j @Component @Order(2) public class RequestResponseLoggingFilter implements Filter {@Overridepublic void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest) request;HttpServletResponse res = (HttpServletResponse) response;log.info("Logging Request {} : {}", req.getMethod(),req.getRequestURI());chain.doFilter(request, response);log.info("Logging Response :{}",res.getContentType());}// other methods }注意在Spring Boot中我們需要使用@Component來實例化Filter從而在Spring Boot中生效。
@Order指定了兩個fiter的順序。
上面的例子我們指定了兩個fiter對于所有的url生效,如果我們希望filter對于特定的某些url生效該怎么辦呢?
我們可使用FilterRegistrationBean來手動注冊對于的Filter:
@Beanpublic FilterRegistrationBean<UrlFilter> loggingFilter(){FilterRegistrationBean<UrlFilter> registrationBean= new FilterRegistrationBean<>();registrationBean.setFilter(new UrlFilter());registrationBean.addUrlPatterns("/users/*");return registrationBean;}上面我們同時指定了filter對應的urlPatttern。
本文的例子可以參考 https://github.com/ddean2009/learn-springboot2/tree/master/springboot-filter
更多精彩內容且看:
- 區塊鏈從入門到放棄系列教程-涵蓋密碼學,超級賬本,以太坊,Libra,比特幣等持續更新
- Spring Boot 2.X系列教程:七天從無到有掌握Spring Boot-持續更新
- Spring 5.X系列教程:滿足你對Spring5的一切想象-持續更新
- java程序員從小工到專家成神之路(2020版)-持續更新中,附詳細文章教程
更多教程請參考 flydean的博客
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的Spring Boot filter的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring boot 自定义banne
- 下一篇: Spring Boot中使用Swagge