2012-04-25 18 views
2

我非常需要這方面的幫助。我一直在尋找一種方法來做到這一點。 我在Tomcat 7中運行的Web應用程序中使用Spring AOP。 我試圖使用@Before建議來打印方法切入點的實際參數的名稱和值。 首先,我認爲只需使用-g選項編譯類文件就可以實現。這沒有用。 然後,我在某篇文章中讀到,使用AspectJ加載時編織肯定會做到這一點。所以,我沒有爲Tomcat 7如下:如何在Spring AOP中訪問實際的方法參數名稱?

在我的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 。

所以我的問題是: 有沒有辦法從建議中獲取方法的參數名稱?如果是這樣如何?

回答

1

需要使用調試信息進行編譯。

然後,您可以使用org.springframework.core.LocalVariableTableParameterNameDiscoverer的實例來解析參數名稱。

+0

Bozho,謝謝你的迴應。就像你我認爲LocalVariableTableParameterNameDiscoverer會做的伎倆,但它沒有。還有其他建議嗎? – 2012-04-26 09:04:32

+0

你有調試信息嗎?因爲我已經使用了它,它的工作 – Bozho 2012-04-26 09:54:44

+0

我又看了一下我的設置。我懷疑代理類和/或接口可能會阻礙。我的假設轉向是正確的。 @Bozho:使用LocalVariableTableParameterNameDiscoverer確實解決了這個問題。 – 2012-04-26 10:02:25

相關問題