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的博客
Spring Boot filter相关推荐
- spring boot filter配置方式
spring boot 加载外部filter方式 spring boot filter两种配置方式 1.自定义filter配置 2.加载外部jar包配置 spring boot filter两种配置方 ...
- Spring Boot Filter过滤器 实现登录
Spring Boot Filter过滤器 实现登录 Filter类 package com.citi.test;import java.io.IOException;import javax.ser ...
- spring boot Filter过滤器的简单使用
springboot使用Filter过滤器有两种方式: 一种是实现Filter接口然后通过@Component注解向项目加入过滤器 另一种是通过配置类来配置过滤器 @Component public ...
- Spring Boot (Filter)过滤器的实现以及使用场景
一.过滤器简介 1. 过滤器是什么? Filter也称之为过滤器,过滤器是对数据进行过滤,预处理.开发人员可以对客户端提交的数据进行过滤处理,比如敏感词,也可以对服务端返回的数据进行处 ...
- spring boot 配置Filter过滤器
Filter 过滤器是web开发中很重要的一个组件,下面以一个session登陆的例子介绍下spring boot中如何使用Filter 首先要准备一个实现了Filter的接口的类 SessionFi ...
- Spring Boot 添加拦截器的配置方式
在进行 Java Web 开发的时候我们经常会使用到过滤器,例如日志的记录.权限的验证等功能.以前使用 Spring MVC 的时候需要在 web.xml 中配置过滤器,现在使用 Spring Boo ...
- Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
文章目录 简介 Spring Boot的基本操作 Spring Boot的构建和部署 Spring Boot工具 Spring Boot的测试 Spring Boot中使用JPA Spring Boo ...
- listener filter servlet_实战Spring Boot 2.0系列:Listener, Servlet和Filter
前言 用户认证授权.日志记录 MDC.编码解码.UA 检查.多端对应等都需要通过 拦截请求 来进行处理.这时就需要 Servlet.Filter.Listener.Interceptor 这几种组件. ...
- Spring Boot自定义 Servlet Filter 的两种方式
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 针 ...
最新文章
- Python学习笔记-模块介绍
- Python机器学习:KNN算法08更多思考
- GridView中不能用If?
- Ruby设计模式透析之 —— 策略(Strategy)
- 2018青岛ICPC ZOJ 4063: Tournament(构造)
- 微信php 客户端cookie,微信内置浏览器中的cookie很诡异呀
- Origin—在曲线的每个峰值处均使用高斯函数进行拟合
- JS生成uuid(唯一标识符)。
- ios8之后的UIAlertController
- 华北电力计算机技术考研难度,华北电力大学(专业学位)计算机技术考研难吗
- 安徽省省二级c语言准考证号查询系统,网办进度考试查询系统
- 牛客练习赛53.老瞎眼 pk 小鲜肉(线段树思维)
- 读书笔记之《大型分布式网站架构设计与实践》
- 让你在macOS上快速查看txt文本文件
- 认知计算机系统和应用实验报告,计算机认知实习课实验报告.doc
- MACOS系统镜像与重装
- 国惠光电短波红外相机资料下载
- hangfire的使用
- Single-Stage 6D Object Pose Estimation——6D姿态估计
- 怎么在PDF上进行修改文字