当前位置: 首页 > 知识库问答 >
问题:

Spring AOP被意外调用

裴和怡
2023-03-14

我在应用程序中为2个不同的包配置了Spring AOP来记录异常。每个封装有2种不同的配置:

<aop:config>
    <aop:aspect id="aspectLoggging" ref="abcExceptionAspect">
        <aop:pointcut id="pointCut"
            expression="execution(* com.abc.*.*(..))" />
        <aop:before method="logBefore" pointcut-ref="pointCut" />
        <aop:after-throwing method="logExceptionABC"
            throwing="error" pointcut-ref="pointCut" />
        <aop:after method="logAfter" pointcut-ref="pointCut" />
    </aop:aspect>
</aop:config>

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

}

method2中出现了一些异常,它调用了logExceptionXYZ方法,我们将它包装在一个泛型异常中,比如ExceptionXYZ,并进一步抛出它。

但在此之后,logExceptionABC方法也会被调用并抛出一个泛型异常,例如ExceptionABC。

共有1个答案

司空坚
2023-03-14

为这两个aop:aspect标记分配了相同的IDaop:pointcut标记的情况也类似。

尝试分配唯一的ID。

 类似资料:
  • 我正在测试的方法是: 为什么这给了我断言错误: java.lang.AssertionError:意外的方法调用player.sendMessage(“§9 TEST Player§B is afk.[TEST REASON]”):player.sendMessage(“§9 TEST Player§B is afk.[TEST REASON]”):预期:1,实际:0在org.easyMock.i

  • 主要内容:读者,前提条件,Spring AOP 概述Spring框架的关键组件之一是面向方面编程(AOP)框架。 面向方面的编程需要将程序逻辑分解成不同的部分。 此教程将通过简单实用的方法来学习Spring框架提供的AOP/面向方面编程。 读者 本教程主要是为Spring 面向方面编程(AOP)初学者准备的,帮助他们了解与Spring的AOP框架相关的基础到高级概念。 前提条件 在开始练习本教程系列文章中给出的各种类型的示例之前,我们假设您已经了解

  • 我们在Tomcat 6上有一个Spring 3 Web应用程序,它通过(主要用于每天晚上运行的作业)使用了几个计划服务。现在看来,有时(很少,也许是两个月左右一次)调度程序线程会停止工作,因此在接下来的晚上不会执行任何作业。在我们的日志文件中没有异常或日志条目。 有人知道为什么会发生这种情况吗?或者如何获得关于这个问题的更多信息? 有没有办法在应用程序中检测到这种情况并重新启动调度程序? 目前,我

  • 我创建了一个自定义验证规则来检查数据库中是否存在用户名。 My User类有一个用户名,该用户名具有自定义验证规则,当创建对象时,它会在数据库中检查是否存在相同的用户名。 我使用<code>界面UserRepository扩展JpaRepositor 我可以分别验证用户并将他们保存到数据库中,但是在一起使用时,比如调用< code > user repository . save(user); <

  • 使用Spring框架实现以下场景 请注意:方法是公共的,在不同的类中。省略了参数和不相关的东西。SaveNotAllowedException被选中异常。 在saveRow方法上,我声明我希望对检查的异常进行回滚。在createOrder方法中,我捕获该异常并执行相关工作来处理该情况。但由于这是一个预期的回滚,我希望Spring也将其视为预期的回滚,并让我尝试一下。 有些人认为这是一个特例。据我理

  • 我有两个活动(A1,A2)。A1呼叫A2,从A2我呼叫摄像机意图如下 它打开相机,我就可以拍照了。但是问题出现了,一旦我单击save按钮(s3中的勾选按钮),我的onActivityResult就不会被调用,而是A2的onDestroy方法被调用。我在onActivityResult fn中有一些逻辑需要完成。 我在Stackoverflow上读过一些关于这个的帖子,但我无法从中得到有用的输出。我