Aop
SpringAop:
Aop就是一种更高级的动态代理的使用; Aspect Oritention Programming(面向切面编程)
AOP说明
名称: 面向切面编程.
作用: 减少代码的耦合性,扩展业务方法.
AOP公式
AOP切面 = 切入点(IF判断) + 通知(方法)
切入点表达式
- Bean 类的路径 类中的方法执行都会执行通知.
指定具体某一个bean - within(包名.类名)
within(com.jt.service.*) service包中全部的类中的方法执行都会执行通知方法.
上述的2种通知粒度较粗. - execution(返回值类型 包名.类名.方法名(参数列表))
例子1:
execution(int com.jt.service….(…))
返回值类型int类型,com.jt.service下的所有包下的所有类
的所有方法,并且参数列表是任意的.
例子2:
execution(* com..service..*(int))
返回值为任意类型 com包下的一级包路径的service包的一级包的所有类型的所有方法的参数有一个参数并且类型为int
[email protected](包名.注解名)
@annotation(注解名)
通知类型
1.before 前置通知 目标方法执行之前执行.
2.afterReturning 后置通知 目标方法执行之后执行.
3.afterThrowing 异常通知 目标方法执行之后出现异常时执行.
4.after 最终通知 不管什么时候最后都要执行的通知.
5.around 环绕通知 目标方法执行前后都要执行的通知.
说明:around功能最为强大,因为可以控制目标方法的执行