当前位置: 代码迷 >> 综合 >> SpringBoot2.0实战(5)配置Filter过滤器
  详细解决方案

SpringBoot2.0实战(5)配置Filter过滤器

热度:107   发布时间:2023-09-29 03:07:44.0

本章目标

学会在 SpringBoot 项目中配置 Filter,实现对请求出入参的日志打印。

操作步骤

添加依赖

引入 Spring Boot Starter 父工程

SpringBoot2.0实战(5)配置Filter过滤器

 

引入 spring-boot-starter-web 的依赖

SpringBoot2.0实战(5)配置Filter过滤器

 

编码

编写 Filter

实现对 application/json 请求的拦截,因为请求内容使用流,所以需要多一次封装

SpringBoot2.0实战(5)配置Filter过滤器

 

请求封装

SpringBoot2.0实战(5)配置Filter过滤器

 

响应封装

SpringBoot2.0实战(5)配置Filter过滤器

 

输入流封装

SpringBoot2.0实战(5)配置Filter过滤器

 

输出流封装

SpringBoot2.0实战(5)配置Filter过滤器

 

注册 Filter

SpringBoot2.0实战(5)配置Filter过滤器

 

编写 controller 接口

使用 @RequestBody 方式接收参数

 

SpringBoot2.0实战(5)配置Filter过滤器

编写项目启动类

SpringBoot2.0实战(5)配置Filter过滤器

 

验证结果

使用 Postman 进行请求

启动服务,使用 postman 进行请求,请求体为 {"name":"user1","sex":1,"birthday":"2000-01-01"}

使用测试用例验证

因为使用测试用例时不会主动加载 Filter,所以需要在启动测试用例环境时进行注册

SpringBoot2.0实战(5)配置Filter过滤器

 

测试用例代码如下:

SpringBoot2.0实战(5)配置Filter过滤器

 

源码地址

本章源码 : https://github.com/caiyuanzi-song/boot.git

总结

Filter 用途很多,本文主要不是讲解 Filter 如何使用,而是讲解如何在 SpringBoot 项目中进行 Filter 的注册。

Filter 注册主要是依赖于 FilterRegistrationBean 类,这只是一种方式,另外 Filter 也可以通过 @WebFilter 注解进行自动注册

  相关解决方案