拦截器(Interceptor)是一种在请求/响应处理流程中嵌入自定义逻辑的通用设计模式,广泛用于 Web 框架、RPC 框架、ORM、消息队列等场景。它的核心作用是在不修改原有业务逻辑的前提下,增强、控制或干预执行流程。
下面从通用作用和常见场景两个层面说明。
在目标方法执行前后插入逻辑,例如:
✅ 避免在每个接口中重复写相同代码。
✅ 常见于 Web / API 网关。
✅ 用于问题排查和性能分析。
✅ 常见于数据库或业务框架。
✅ 多用于网关或 RPC 框架。
preHandle → 请求前
postHandle → 请求后
afterCompletion → 视图渲染后
常见用途:
| 对比项 | 拦截器 | 过滤器 | AOP |
|---|---|---|---|
| 层级 | 框架层 | Servlet 层 | 方法层 |
| 粒度 | Controller / 调用链 | HTTP 请求 | 方法 / 注解 |
| Spring 支持 | ✅ | ✅ | ✅ |
| 能否获取 Bean | ✅ | ❌ | ✅ |
拦截器的作用:在请求/调用链路中统一增强功能,实现鉴权、日志、监控、异常处理等横切关注点,避免业务代码重复。
如果你有具体技术栈(如 Spring Boot、Vue、Dubbo、MyBatis),我可以针对它详细展开。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。