使用
- 一个类 作为切面 加上注解 @Aspectj
- 方法上 加上通知的注解 @Before 等 。。。
- 注解后边的匹配具体方法的,表达式:通过表达式找到方法,然后就是
- 在配置文件中加入aop:aspectj-autoproxy</aop:aspectj-autoproxy> 让方法匹配后自动生成代理对象
- JointPoint 这个对象中封装了要调用的方法,的所有信息,名称,参数等。
通知中的特点
1,后置通知,无论是否发生异常我们都会执行。
2,异常通知,这个在表达式中要加入一个参数throwing= “e”. 然后再方法参数中接收
3,返回通知,这个在表达式中要加入一个参数returning= “res”.然后再方法参数中接收
4,环绕通知,这个第一是和动态代理的全过程一样, 必须有返回值* 返回值就是目标方法的返回值,在方法参数中要加入。ProceedingJointPoint* 这个参数可以确定是不是要执行目标方法。
5,对于ProceedingJointPoint 的使用, pjp.proceed()。这个方法是真正的执行这个方法。