@InitBinder 导致切面多次执行的问题

Posted 简简单单OnlineZuozuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@InitBinder 导致切面多次执行的问题相关的知识,希望对你有一定的参考价值。

@InitBinder 导致切面多次执行的问题


1、表现

在使用有 @InitBinder 注解标注方法的类中,使用 Aspect aop 进行切面时,存在切面多次执行的问题

虽然被切方法的主体不会执行多次,但是切面代码会执行多次

2、解决

通过目标方法排除 @InitBinder 方法

    MethodSignature signature = (MethodSignature) joinPoint.getSignature();
    if (INIT_BINDER.equals(signature.getMethod().getName())){
      return;
    }
INIT_BINDER 是你定义的 @InitBinder 标记的方法名称,需要统一名称,可以防止切面代码被多次执行

以上是关于@InitBinder 导致切面多次执行的问题的主要内容,如果未能解决你的问题,请参考以下文章

原Order属性决定了不同切面类中通知执行的先后顺序

springMVC-InitBinder

多次 onReceive 使用会导致重复的 API 调用

多次插入和更新导致死锁 c#

过滤器拦截器AOP切面执行顺序的比较

@initbinder 不适用于特定的模型属性