execution:用于匹配方法执行的连接点;
within:用于匹配指定类型内的方法执行;
this:用于匹配当前AOP代理对象类型的执行方法;注意是AOP代理对象的类型匹配,这样就可能包括引入接口也类型匹配;
target:用于匹配当前目标对象类型的执行方法;注意是目标对象的类型匹配,这样就不包括引入接口也类型匹配;
args:用于匹配当前执行的方法传入的参数为指定类型的执行方法;
@within:用于匹配所以持有指定注解类型内的方法;
@target:用于匹配当前目标对象类型的执行方法,其中目标对象持有指定的注解;
@args:用于匹配当前执行的方法传入的参数持有指定注解的执行;
@annotation:用于匹配当前执行方法持有指定注解的方法;
有@和没有@的区别就在于当前的方法或者类型是不是有指定的注释
Spring Aop 分两种情况一种是正常情况,正常情况Aftertetrun,异常情况是AfterThrowing
正常情况
异常情况
Spring Aop主要是有:
1:编入织点
2:正常(AfterReturn)或者异常(AfterThrowing)
3:protected方法
获得注释和读取当前用户
4:获取注解中对方法的描述信息 用于Controller层注解
5:获取请求的参数,放到log中
6:是否存在注解,如果存在就获取
Log 自定义操作日志记录注解,里边就是用多个方法构造成的,一定要理解其中的注释的含义以及注释下的属性参数