SpringAop如何获取当前的类名和方法名

时间:2022-10-01 18:16:29
近来学习SpringAOP有一个疑问, 除@Around可以知道当前执行的方法名称外
(//获取将要执行的方法名称  String methodName = pjp.getSignature().getName();)
其他的几个通知可以知道当前执行的是某个类的某个方法吗?如果可以得话,是怎么实现的? 还请各位大神指教,有代码那是最好了,没有的话可以给个相关的文档或是链接,不胜感激。

3 个解决方案

#1


getTarget()方法就是获取被织入增强处理的目标对象。你都能获取到对象了,获取个类名不是so easy么。

public void authority(JoinPoint jp)
{
System.out.println(jp.getTarget().getClass().getName());
System.out.println("模拟执行权限检查");
}

#2


该回复于2017-02-04 16:16:51被管理员删除

#3


多谢1楼的帮助,我的问题解决了,还有个问题想问下,就是在XML配置文件中可以配置在执行某个方法的时候去织入通知,我的问题是它是怎么判断程序执行了某个方法的,还有如果这个方法有参数是怎么获得的,这个参数怎么体现在织入的通知中(就像你给的代码中的权限检查一样,如果方法中传入的是用户对象我们可以在通知中对用户的权限进行检查),希望1楼给些指点最好有些代码,不胜感激。

#1


getTarget()方法就是获取被织入增强处理的目标对象。你都能获取到对象了,获取个类名不是so easy么。

public void authority(JoinPoint jp)
{
System.out.println(jp.getTarget().getClass().getName());
System.out.println("模拟执行权限检查");
}

#2


该回复于2017-02-04 16:16:51被管理员删除

#3


多谢1楼的帮助,我的问题解决了,还有个问题想问下,就是在XML配置文件中可以配置在执行某个方法的时候去织入通知,我的问题是它是怎么判断程序执行了某个方法的,还有如果这个方法有参数是怎么获得的,这个参数怎么体现在织入的通知中(就像你给的代码中的权限检查一样,如果方法中传入的是用户对象我们可以在通知中对用户的权限进行检查),希望1楼给些指点最好有些代码,不胜感激。