首先要先导入aop的起步依赖
编写aop类的时候要加@Component交给bean容器管理,加@Aspect这个注解,代表他不是一个普通类,是一个aop类
要在aop类中调用原始方法运行需要运用下面这个函数(ProceedingJoinPoint joinPoint是得从方法中传过来的形参)
result用于后面的return(防止有的原始方法有返回值)
aop的核心概念
通知类型
抽取一个切入点表达式,格式如下:
- 引用切入点表达式(直接调用表达式的方法名)
- 在别的包下的类里面运用切入点表达式(要完整的输入包名)
- 细节:注意,要在别的包下面使用的话需要将pt()这个方法设置为public而不是private
多个切面类的执行顺序
![](https://i-blog.csdnimg.cn/blog_migrate/3be77e61d50aca9b7af11c7a8431bdb1.png)
切入点表达式的常见形式
切入点表达式--execution
语法
示例:(方法参数也要写包名)
小细节:execution中可以写多个切入点表达式,用||来连接,代表多个特定情况
切入点表达式--@annotation
语法(这个代表用来匹配带有Log注解的所有方法)
小细节:创建annotation注解和创建接口差不多(选第四个annotation)
小细节:创建好annotation之后记得加上这两个注解
连接点
通知类型不同用的连接点不同