2

私のインターセプター宣言は次のようになります。

<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 の依存関係の 1 つであることを確認しました
  • mavenの依存関係にaspectjrtとaspectjweaverを追加

CustomizableTraceInterceptor を拡張し、writeToLog メソッドを上書きする独自のインターセプターを実装するところまで行き、System.out.println を配置して、クラスが呼び出されるかどうかを確認しました。そうではありません。

誰かが私が欠けているものを見ることができますか?

4

1 に答える 1

1

Bean CustomizableTraceInterceptor の loggername プロパティを設定する必要があります。また、ログ レベルを trace に設定してください。

トレース log4j 構成の一部として記述しているロガー クラスの任意の名前を宣言できます。

于 2012-09-29T14:55:59.510 に答える