Filter,Interceptor,AOP 区别与使用方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Filter,Interceptor,AOP 区别与使用方法相关的知识,希望对你有一定的参考价值。

参考技术A 用法:实现Filter接口,或继承其实现类
(eg: GenericFilterBean -> OncePerRequestFilter -> AbstractRequestLoggingFilter)

用法
步骤1:继承HandlerInterceptorAdapter(是HandlerInterceptor接口的实现类,有默认的空实现,可以自由选择自己需要的method去实现)

步骤2:

用法
@Aspect @Component @Pointcut @Around @Before

顺序:Filter -> Interceptor -> ControllerAdvice -> Aspect -> Controller -> Aspect -> ControllerAdvice -> Interceptor -> Filter
*ps: ControllerAdvice 是controller的增强,和ExceptionHandler一起用来做全局异常。

SpringBoot 三种拦截http请求方式Filter,interceptor和aop

参考技术A SpringBoot 三种拦截http请求方式Filter,interceptor和aop。

这三种拦截方式的拦截顺序是:filter—>Interceptor-->ControllerAdvice-->@Aspect -->Controller;

这三种方式的区别:
1.过滤器Filter可以拿到原始的HTTP请求和响应的信息, 但是拿不到你真正处理请求方法的信息,也就是方法的信息。
2.拦截器Interceptor可以拿到原始的HTTP请求和响应的信息,也可以拿到你真正处理请求方法的信息,但是拿不到传进参数的那个值。
3.切片Aspect,既然Spring那么支持AOP,可以拿到原始的HTTP请求和响应的信息, 也可以拿到你真正处理请求方法的信息,也可以传进参数的那个值。

实现Filter接口

实现 HandlerInterceptor 接口,然后配置进Spring。

配置进spring

pom.xml 添加Aop支持

以上是关于Filter,Interceptor,AOP 区别与使用方法的主要内容,如果未能解决你的问题,请参考以下文章

filter和interceptor的区别

过滤器和拦截器区别

拦截器(Interceptor)和过滤器(Filter)的区别和执行顺序)

SpringBoot知识体系+Vue3 实战WIKI知识库系统笔记 demo8_Filter_Interceptor_aop

SpringBoot知识体系+Vue3 实战WIKI知识库系统笔记 demo8_Filter_Interceptor_aop

spring中过滤器(filter)、拦截器(interceptor)和切面(aop)的执行顺序