SpringBoot 的过滤器 Filter 配置
时间:2022-07-28
本文章向大家介绍SpringBoot 的过滤器 Filter 配置,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
SpringBoot 过滤器配置有三种方式
1. @ServletComponentScan + @WebFilter, 可配置过滤路径, 但没有顺序(顺序是由过滤器命名决定)
在启动类上使用 @ServletComponentScan, 在过滤器类上使用 @WebFilter(urlPatterns = {"/test/path"})
@SpringBootApplication
@ServletComponentScan
public class ServicemapServicecenterBackendApplication {
public static void main(String[] args) {
SpringApplication.run(ServicemapServicecenterBackendApplication.class, args);
}
}
@WebFilter(urlPatterns = {"/test"})
public class FilterTwo extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
System.out.println("************************** FilterTwo **************************");
filterChain.doFilter(request, response);
}
}
2. @Component + @Order(100), 不可配置过滤路径, 可以通过@Order配置顺序
在过滤器类上使用 @Component , @Order(100) 数值越小优先级越高
@Component
@Order(100)
public class FilterOne extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
System.out.println("************************** FilterOne **************************");
filterChain.doFilter(request, response);
}
}
3. @SpringBootConfiguration + @Order, 可配置过滤路径, 可以通过@Order配置顺序, 也可以在代码中setOrder(100)配置 (推荐方式)
@Order(100)
public class FilterOne extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
System.out.println("************************** FilterOne **************************");
filterChain.doFilter(request, response);
}
}
@SpringBootConfiguration
public class FilterConfig {
@Bean
public FilterRegistrationBean<FilterOne> filterOneRegister() {
FilterRegistrationBean<FilterOne> filterRegistrationBean = new FilterRegistrationBean<>();
filterRegistrationBean.setFilter(new FilterOne());
filterRegistrationBean.addUrlPatterns("/*");
// filterRegistrationBean.setOrder(100);
return filterRegistrationBean;
}
}
- Java操作数据库Spring(2)
- 解决SSH连接linux中文显示乱码问题
- 设计模式——类图以及类与类之间的关系
- sysdba登录报错insufficient privileges的原因分析(r7笔记第64天)
- JDBC基础入门(1)
- LeetCode——Add Two Numbers
- python 中numpy基本方法总结可以类推tensorflow
- python基础知识——函数
- tensorflow之tf.placeholder 与 tf.Variable区别对比
- 11g备库搭建碰到自己给自己埋的坑(r7笔记第63天)
- JDBC基础入门(2)
- 11g备库无法开启ADG的原因分析 (r7笔记第62天)
- JDBC基础入门(3)
- Python多元线性回归-sklearn.linear_model,并对其预测结果评估
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- flag区分大小写的sql盲注
- Spring中的Spring JSR-250 注释
- WebRTC 入门指南
- 【DB笔试面试844】在Oracle中,tnsnames.ora文件的作用是什么?
- Spring 基于注解(annotation)的配置之@Qualifier注解
- Spring 基于设值函数的依赖注入
- Spring 基于构造函数的依赖注入
- 绕过卡巴进程保护的一些总结
- Loki | 数据过期自动删除策略设计
- 【短道速滑二】古老的基于亮度平均值的自动Gamma校正算法。
- Docker-Compose基础与实战,看这一篇就够了
- 干货-python与安全(一)入门简介
- 怎么在vue的style标签里面使用变量?
- 幼儿园EasyNVR能力层安防监控平台调用视频直播流报404错误解决方案
- C# WinForm捕获全局异常