关于方面:Spring AOP被意外调用

Spring AOP is being invoked unexpectedly

我已经在应用程序中为2个不同的软件包配置了Spring AOP以记录异常。
每个软件包有2种不同的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        <aop:pointcut id="pointCut"
            expression="execution(* com.abc.*.*(..))" />
       
        <aop:after-throwing method="logExceptionABC"
            throwing="error" pointcut-ref="pointCut" />
       
    </aop:aspect>
</aop:config>


   
        <aop:pointcut id="pointCut"
            expression="execution(* com.xyz.*.*(..))" />
       
       
        <aop:after-throwing method="logExceptionXYZ"
            throwing="error" pointcut-ref="pointCut" />
    </aop:aspect>
</aop:config>

在服务方法调用中,存在对属于以下每个程序包的类的方法的调用:

公共无效方法()
{

method1(); ->包abc

method2(); ->包xyz

}

在method2中会发生一些异常,该异常会调用logExceptionXYZ方法,其中我们将其包装在一个通用异常中,例如ExceptionXYZ,并将其进一步抛出。

但是在此之后,还会调用logExceptionABC方法并引发一个通用异常,例如ExceptionABC。

我无法理解为什么为什么要调用logExceptionABC方法?

如果有人知道这样的问题,请告诉我!

问候,
拉胡尔


相同的id被分配给两个aop:aspect标签。 aop:pointcut标记也是如此。

尝试分配唯一的ID。