在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的博客

Spring Boot filter相关推荐

  1. spring boot filter配置方式

    spring boot 加载外部filter方式 spring boot filter两种配置方式 1.自定义filter配置 2.加载外部jar包配置 spring boot filter两种配置方 ...

  2. Spring Boot Filter过滤器 实现登录

    Spring Boot Filter过滤器 实现登录 Filter类 package com.citi.test;import java.io.IOException;import javax.ser ...

  3. spring boot Filter过滤器的简单使用

    springboot使用Filter过滤器有两种方式: 一种是实现Filter接口然后通过@Component注解向项目加入过滤器 另一种是通过配置类来配置过滤器 @Component public ...

  4. Spring Boot (Filter)过滤器的实现以及使用场景

    一.过滤器简介 1. 过滤器是什么?         Filter也称之为过滤器,过滤器是对数据进行过滤,预处理.开发人员可以对客户端提交的数据进行过滤处理,比如敏感词,也可以对服务端返回的数据进行处 ...

  5. spring boot 配置Filter过滤器

    Filter 过滤器是web开发中很重要的一个组件,下面以一个session登陆的例子介绍下spring boot中如何使用Filter 首先要准备一个实现了Filter的接口的类 SessionFi ...

  6. Spring Boot 添加拦截器的配置方式

    在进行 Java Web 开发的时候我们经常会使用到过滤器,例如日志的记录.权限的验证等功能.以前使用 Spring MVC 的时候需要在 web.xml 中配置过滤器,现在使用 Spring Boo ...

  7. Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新

    文章目录 简介 Spring Boot的基本操作 Spring Boot的构建和部署 Spring Boot工具 Spring Boot的测试 Spring Boot中使用JPA Spring Boo ...

  8. listener filter servlet_实战Spring Boot 2.0系列:Listener, Servlet和Filter

    前言 用户认证授权.日志记录 MDC.编码解码.UA 检查.多端对应等都需要通过 拦截请求 来进行处理.这时就需要 Servlet.Filter.Listener.Interceptor 这几种组件. ...

  9. Spring Boot自定义 Servlet Filter 的两种方式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 针 ...

最新文章

  1. Python学习笔记-模块介绍
  2. Python机器学习:KNN算法08更多思考
  3. GridView中不能用If?
  4. Ruby设计模式透析之 —— 策略(Strategy)
  5. 2018青岛ICPC ZOJ 4063: Tournament(构造)
  6. 微信php 客户端cookie,微信内置浏览器中的cookie很诡异呀
  7. Origin—在曲线的每个峰值处均使用高斯函数进行拟合
  8. JS生成uuid(唯一标识符)。
  9. ios8之后的UIAlertController
  10. 华北电力计算机技术考研难度,华北电力大学(专业学位)计算机技术考研难吗
  11. 安徽省省二级c语言准考证号查询系统,网办进度考试查询系统
  12. 牛客练习赛53.老瞎眼 pk 小鲜肉(线段树思维)
  13. 读书笔记之《大型分布式网站架构设计与实践》
  14. 让你在macOS上快速查看txt文本文件
  15. 认知计算机系统和应用实验报告,计算机认知实习课实验报告.doc
  16. MACOS系统镜像与重装
  17. 国惠光电短波红外相机资料下载
  18. hangfire的使用
  19. Single-Stage 6D Object Pose Estimation——6D姿态估计
  20. 怎么在PDF上进行修改文字

热门文章

  1. 任意模数NTT(MTT)
  2. 漫游Kafka实战篇之客户端编程实例
  3. c++ 继承机制易犯的错误
  4. sscanf函数用法详解
  5. 《Windows核心编程》---Interlocked原子访问系列函数
  6. UDP用打洞技术穿透NAT的原理与实现
  7. __declspec(novtable) 的用法
  8. 你真的了解 CDC 吗?
  9. 腾讯云快直播——超低延迟直播技术方案及应用
  10. 通过改进视频质量评估提升编码效率