Spring aop注解方式怎么获得执行了目标的某个方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring aop注解方式怎么获得执行了目标的某个方法?相关的知识,希望对你有一定的参考价值。

参考技术A private void beforeTransationHandle(JoinPoint point) throws Exception\\x0d\\x0a//拦截的实体类\\x0d\\x0aObject target = point.getTarget();\\x0d\\x0a//拦截的方法名称\\x0d\\x0aString methodName = point.getSignature().getName();\\x0d\\x0a//拦截的方法参数\\x0d\\x0aObject[] args = point.getArgs();\\x0d\\x0a//拦截的放参数类型\\x0d\\x0aClass[] parameterTypes = ((MethodSignature)point.getSignature()).getMethod().getParameterTypes();\\x0d\\x0a\\x0d\\x0aMethod m = null;\\x0d\\x0atry \\x0d\\x0a//通过反射获得拦截的method\\x0d\\x0am = target.getClass().getMethod(methodName, parameterTypes);\\x0d\\x0a//如果是桥则要获得实际拦截的method\\x0d\\x0aif(m.isBridge())\\x0d\\x0afor(int i = 0; i < args.length; i++)\\x0d\\x0a//获得泛型类型\\x0d\\x0aClass genClazz = GenericsUtils.getSuperClassGenricType(target.getClass());\\x0d\\x0a//根据实际参数类型替换parameterType中的类型\\x0d\\x0aif(args[i].getClass().isAssignableFrom(genClazz))\\x0d\\x0aparameterTypes[i] = genClazz;\\x0d\\x0a\\x0d\\x0a\\x0d\\x0a//获得parameterType参数类型的方法\\x0d\\x0am = target.getClass().getMethod(methodName, parameterTypes);\\x0d\\x0a\\x0d\\x0a catch (SecurityException e) \\x0d\\x0ae.printStackTrace();\\x0d\\x0a catch (NoSuchMethodException e) \\x0d\\x0ae.printStackTrace();\\x0d\\x0a\\x0d\\x0a

以上是关于Spring aop注解方式怎么获得执行了目标的某个方法?的主要内容,如果未能解决你的问题,请参考以下文章

基于注解的Spring AOP

基于注解的Spring AOP

Spring AOP注解方式实现

spring实现aop具体步骤

转:Spring AOP 注解方式实现的一些“坑”

spring的@Transactional注解