2

私はこれについて必死に助けが必要です。私はこれを行う方法をずっと探してきました。Tomcat 7 で実行されている Web アプリで Spring AOP を使用しています。@Before アドバイスを使用して、メソッド ポイントカットの実際の引数の名前と値を出力しようとしています。まず、クラス ファイルを -g オプションでコンパイルするだけでうまくいくと思いました。それはうまくいきませんでした。それから、AspectJ ロードタイム ウィービングを使用すると確実にうまくいくという投稿をどこかで読みました。そこで、Tomcat 7 に対して次のことを行いました。

私の context.xml で

<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>

私のconfig.xmlで

<context:load-time-weaver weaver-class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver"/>

しかし、まだ MethodSignature.getParameterNames() を呼び出すと、null が返されます。

だから私の質問は: アドバイス内からメソッドのパラメーター名を取得する方法はありますか? もしそうなら、どのように?

4

1 に答える 1

1

デバッグ情報を使用してコンパイルする必要があります。

その後、 のインスタンスを使用しorg.springframework.core.LocalVariableTableParameterNameDiscovererてパラメーター名を解決できます。

于 2012-04-25T22:05:33.470 に答える