本章目标
学会在 SpringBoot 项目中配置 Filter,实现对请求出入参的日志打印。
操作步骤
添加依赖
引入 Spring Boot Starter 父工程
引入 spring-boot-starter-web 的依赖
编码
编写 Filter
实现对 application/json 请求的拦截,因为请求内容使用流,所以需要多一次封装
请求封装
响应封装
输入流封装
输出流封装
注册 Filter
编写 controller 接口
使用 @RequestBody 方式接收参数
编写项目启动类
验证结果
使用 Postman 进行请求
启动服务,使用 postman 进行请求,请求体为 {"name":"user1","sex":1,"birthday":"2000-01-01"}
使用测试用例验证
因为使用测试用例时不会主动加载 Filter,所以需要在启动测试用例环境时进行注册
测试用例代码如下:
源码地址
本章源码 : https://github.com/caiyuanzi-song/boot.git
总结
Filter 用途很多,本文主要不是讲解 Filter 如何使用,而是讲解如何在 SpringBoot 项目中进行 Filter 的注册。
Filter 注册主要是依赖于 FilterRegistrationBean 类,这只是一种方式,另外 Filter 也可以通过 @WebFilter 注解进行自动注册