Spring:不会调用CustomizableTraceInterceptor

时间:2012-08-27 22:51:05

标签: spring aspectj spring-aop

我的拦截器声明如下所示:

<bean id="loggingInterceptor"
      class="org.springframework.aop.interceptor.CustomizableTraceInterceptor">
    <property name="enterMessage" value="Enter: $[targetClassShortName].$[methodName]($[arguments])"/>
    <property name="exitMessage" value="Exit: $[targetClassShortName].$[methodName](...) returning [$[returnValue]]"/>
</bean>

使用切入点:

<aop:config proxy-target-class="true">
    <aop:advisor advice-ref="loggingInterceptor"
                 pointcut="execution(public * com.mycompany.server..*.*(..))"/>
</aop:config>

但是CustomizableTraceInterceptor没有任何痕迹。

  • 我在切入点验证包是正确的
  • 我确实检查了我设置为跟踪的日志级别。
  • 我确认spring-aop.jar是maven依赖项之一
  • 向maven dependencis添加了aspectjrt和aspectjweaver

我甚至实现了我自己的扩展CustomizableTraceInterceptor和覆盖writeToLog方法的拦截器,只是调用System.out.println以查看是否调用了类。它没有。

有人能看到我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

您需要设置bean CustomizableTraceInterceptor的loggername属性。 还要确保将日志级别设置为跟踪。

您可以为logger类声明任何名称 - 您正在编写跟踪log4j配置的一部分。