一、Advice通知类型
1.前置通知before--目标方法执行前需要增强的方法执行
<aop:before method="checkPri" pointcut-ref="pt"/>
2.后置通知after-returning--目标方法执行后需要增强的方法执行,可返还一个参数
<aop:after-returning method="writeLog" pointcut-ref="pt" returning="result"/>
3.环绕通知around--目标方法执行前和后需要增强的方法执行
<aop:around method="round" pointcut-ref="pt"/>
3.异常通知after-throwing--在切入点抛出异常时,需要增强的方法执行--可以返还异常信息
<aop:after-throwing method="afterThrowing" pointcut-ref="pt" throwing="ex"/>
4.最终通知after--无论是否异常,需要增强的方法都会执行
<aop:after method="after" pointcut-ref="pt"/>
二、切入点表达式写法execution
1. 语法结构
?为非必选
execution(方法修饰符? 方法返回值 方法所属类或包? 匹配方法名 ( 方法中的形参表 ) 方法申明抛出的异常? )
execution(public void com.mark.demo.UserDao.add(..))
2.*返回值的类型任意,*所有类,*所有方法
3. (..)匹配任意参数,包名后面的"..",表示当前包及子包
4.+匹配指定类型的子类型;仅能作为后缀放在所属类后边