HandlerInterceptor 和 methodInterceptor哪个顺序更前
时间: 2023-11-03 14:19:55 浏览: 208
浅谈SpringMVC HandlerInterceptor诡异问题排查
HandlerInterceptor 和 MethodInterceptor 都是 Spring 框架中用于 AOP 的拦截器,但是它们的作用范围和执行时机有所不同。
HandlerInterceptor 是用于拦截 Spring MVC 框架中的 HTTP 请求的拦截器,它可以在请求处理之前和之后进行拦截处理。HandlerInterceptor 的执行顺序是在 Spring MVC 的执行链中,具体的顺序由配置的拦截器顺序决定,可以通过配置文件或注解来指定。
MethodInterceptor 是用于拦截 Spring AOP 中的方法执行的拦截器,它可以在方法执行之前和之后进行拦截处理。MethodInterceptor 的执行顺序是由 AOP 代理链中的拦截器顺序决定,可以通过配置文件或注解来指定。
从作用范围和执行时机来看,HandlerInterceptor 和 MethodInterceptor 是不同的两种拦截器,它们的执行顺序也是独立的。在 Spring MVC 中,HandlerInterceptor 可以在 MethodInterceptor 之前或之后执行,具体顺序由配置决定。在 Spring AOP 中,MethodInterceptor 的执行顺序由 AOP 代理链中的拦截器顺序决定。
因此,手动比较 HandlerInterceptor 和 MethodInterceptor 的执行顺序是没有意义的,需要根据具体的业务逻辑和需求来选择合适的拦截器。如果需要对 HTTP 请求进行拦截处理,应该使用 HandlerInterceptor;如果需要对方法执行进行拦截处理,应该使用 MethodInterceptor。如果需要同时对 HTTP 请求和方法执行进行拦截处理,可以同时使用 HandlerInterceptor 和 MethodInterceptor,并根据具体情况确定它们的执行顺序。
阅读全文