gpt4 book ai didi

java - 如何订购AOP切面和MVC拦截器?

转载 作者:行者123 更新时间:2023-12-02 09:38:52 24 4
gpt4 key购买 nike

我有一个 Controller 方法,它用 2 个自定义注释进行注释。

其中一个是用 HandlerInterceptorAdapter 处理的,它是 Spring MVC 的一部分。另一种是通过AOP@Aspect来处理的。

看来第一个总是优先于最后一个。

放置 @Order(value = Ordered.HIGHEST_PRECEDENCE) 对于这种情况不起作用。

有什么办法可以安排这两者之间的执行顺序吗?

最佳答案

Spring 中有一个带有 @Order(value = Ordered.HIGHEST_PRECEDENCE + 1) 的拦截器 ExposeInitationInterceptor,javadoc 说

If used, this interceptor will normally be the first in the interceptor chain.

因此,不可能有比这更高阶的拦截器。因此,如果您添加 +1,即与 ExposeInitationInterceptor 相同的优先级(或更高),它将起作用。

所以,我尝试了以下操作并且它有效:

@Order(value = Ordered.HIGHEST_PRECEDENCE + 1)

@Order(value = Integer.MIN_VALUE + 1)

显然Ordered.HIGHEST_PRECEDENCE = Integer.MIN_VALUE

关于java - 如何订购AOP切面和MVC拦截器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57274322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com