【问题标题】:Why does my Spring AOP aspect work in my unit test but not my webapp?为什么我的 Spring AOP 方面在我的单元测试中有效,但在我的 webapp 中无效?
【发布时间】:2012-10-23 17:10:37
【问题描述】:

我的单元测试中有一个方面正常工作,从实际方法打印一条日志消息,然后从应用的方面打印。

但在运行我的 webapp 时,我只看到应用了 '@afterReturning' 建议的结果,我的方法没有首先执行。

我的配置:

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans 
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/aop 
   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

  <aop:aspectj-autoproxy proxy-target-class="true" />

  <bean id="loggingAspect" class="com.mypackage.MyAspect" />

</beans>

有什么想法吗?

感谢您的帮助。

【问题讨论】:

    标签: spring aop


    【解决方案1】:

    您提供的信息不足以分析。因此,请在您的网络应用中检查以下内容,

    1) 验证您希望被通知拦截的方法是否属于 spring bean 类而不是其他一些 servlet 或在 spring 之外定义的其他类。如果任何类没有通过 spring 初始化,则 aop 建议不能应用于该类。

    2) 验证上面的 aop 和建议配置是否已放入 spring 的正确上下文 xml 中。与 spring-mvc 一样,您必须明确定义应用程序上下文 xml 的名称。而在那个应用程序上下文 xml 中,您只需编写 aop 配置。

    3) 验证您的切入点是否适合为建议找到确切的类和方法。

    看看这些东西是否到位。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 2021-04-15
      相关资源
      最近更新 更多