执行顺序
监听器 -> 过滤器 -> 拦截器 -> AOP
监听器(Listener)
功能:监听和响应特定的系统或应用程序事件
应用场景:系统状态监控/数据库事件监听/消息传递/Spring Boot应用上下文的初始化/刷新/启动/停止
过滤器(Filter)
级别:Servlet容器级别
使用范围:应用于所有的HTTP请求和响应,包括Spring MVC的控制器方法/静态资源/其他类型的Servlet
实现原理:基于函数回调机制
应用场景:对所有请求进行通用处理,字符编码转换/跨域支持/基本身份验证/静态资源压缩/session管理/记录请求的处理时间
拦截器(Interceptor)
级别:Spring MVC框架级别
使用范围:只能对Spring MVC的控制器方法起作用
实现原理:基于反射机制(动态代理)
应用场景:对业务逻辑相关的请求进行处理,权限控制/事务管理/日志记录
AOP(面向切面编程)
功能:将横切关注点从核心业务逻辑中分离出来
应用场景:日志记录/事务管理/性能监控/权限检查/缓存处理/异常处理/数据校验/统计计数/数据预处理和后处理