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

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也将其视为预期的回滚,并让我尝试一下。 有些人认为这是一个特例。据我理

  • 问题内容: 当调用Surveymonkey api时 ,服务器需要使用它 作为json数据来完成我的请求。虽然它返回的数据是必需的,但它没有返回我认为我要求的其他URL。有谁知道为什么这不会给我这个? 编辑 https://developer.surveymonkey.com/mashery/get_collector_list, 这是我尝试拨打的电话,如果有帮助 问题答案: 正如评论中指出的那样