Spring Boot 重温(二) 过滤器 拦截器 监听器

Felix 2019年11月07日 247次浏览

SpringBoot 对客户端请求的拦截有大概三种常用拦截方式

  1. 过滤器
  2. 拦截器
  3. 监听器

另外还有一种基于AOP的接片拦截 Aspect ,好像没多用过。

流程

image.png

对比

相同点:都可以对客户端请求进行拦截,都可以用于打印访问日志 不同点:

初始化实现数据功能
过滤器APP启动是初始化,停止时销毁Servlet 规范原始request和responseURL内容过滤,权限控制
拦截器Spring加载配置文件时初始化继承Spring的HandlerInterceptor / AOP原始的Request、Response和所有的controller及方法名,但无法获取方法的参数信息性能分析,权限检查
监听器APP启动初始化Servlet 规范servletContext、HttpSession和servletRequest等域对象的创建和销毁事件统计在线人数/销毁临时数据

所以,实际项目需根据需求选择使用何种方式拦截请求。