拦截器:
是Spring MVC的一个组件,作用于Spring MVC的请求,在请求进入Controller前/后进行处理,依赖于Spring框架,需继承Spring MVC。
实现拦截器时,必须通过 WebMvcConfigurer
添加到 Spring MVC 配置链,否则拦截器不起作用。
过滤器:
基于 Servlet 规范,作用于所有请求,在请求进入Servlet前处理,不依赖 Spring,可在任何Servlet容器中使用。
实现过滤器时,只需将过滤器类标记为 @Component
,Spring Boot 会通过 ServletComponentScan
自动将其注册到 Servlet 容器中。
均体现了AOP思想,通过 横向切面 的方式解决代码复用和关注点分离的问题。