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教程
- 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 文档注释
- 一个请求过来,Spring MVC 是如何找到正确的 Controller 的?
- 吴师兄导读:如何快速入门数据结构和算法
- 你真的会做 2 Sum 吗?
- 漫画:什么是计数排序?
- vue使用腾讯位置服务选点组件问题总结
- Spring 的 Controller 是单例还是多例?怎么保证并发的安全
- Python游戏开发 制作AI贪吃蛇!
- Python老司机手把手带你写爬虫,整站下载妹子图,一次爽个够!
- 教你用云开发打造一个双端自动发布的博客体系(下)
- 国科大&中科院提出CANet:用于图像复原的拼接注意力网络
- 【Kubernetes】Octant部署
- 使用注意力机制来做医学图像分割的解释和Pytorch实现
- 用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事
- 数据量大的表建立索引或者修改表结构太慢的解决办法
- Activiti7入门Demo