1. 加入切入点常用两种方式:
a. 通过aspectJ切入点表达式,类似execution(* com.spring.service.impl.*.*(..))这种方式
b.通过annonation,类似@annotation(com.izhbg.typz.base.common.redis.RedisCache),其中RedisCache是一个annotation定义类。
2. 一个完备的aop包含两部分,1是切入点,解决where的问题,2是切入bean,解决when(具体来说是before,after,around)和what(在切入点干什么)的问题
3. annotation与aop结合着用的时候。
((MethodSignature)ProceedingJoinPoint.getSignature()).getParameterTypes()取得的参数列表,会保持primitive类型不变,但是除primitive外,其它类统统以Object代替。而ProceedingJoinPoint.getArgs()取得的参数列表,会将primitive转化为相应的类(比如int-->Integer),但是会保持其它类的类型不变。
综上,如果想得到准确的被切面的函数的参数类型列表,需要将以上得到的两个数组对照着用。否则得到的method可能并不是你想要的method描述,进而拿不到目标annotation。