如何在Spring AOP中访问实际的方法参数名称?

时间:2012-04-25 21:57:17

标签: java spring reflection aop

我迫切需要帮助。我一直在寻找一种方法来做到这一点。 我在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。

所以我的问题是: 有没有办法从建议中获取方法的参数名称?如果是这样的话?

1 个答案:

答案 0 :(得分:1)

需要使用调试信息进行编译。

然后,您可以使用org.springframework.core.LocalVariableTableParameterNameDiscoverer的实例来解析参数名称。