AOP
Aspect Oriented Programming:面向切面编程
:程序运行期间,通过动态地理来实现在不修改源码的情况下实现功能的增强的一种思想,不过spring提供了具体的实现,AOP是一种思想。
切面如何理解:
由点及面,是由一个个切入点和通知组成一个面(aspect).
在目标对象中每一个方法都是一个连接点(JoinPoint),被具体增强的方法是切入方法(pointcut),通知,通知类是实现增强切入方法的具体类
五种通知类型
- 前置通知 before
- 后置通知 afterReturning
- 异常通知 afterThrowing
- 最终通知 after
- 环绕通知 around
在配置xml文件的时候,如果碰到的通知方法是有参数的情况
第一种方式
如下:
那么在xml文件中对应的配置代码
首先
args中的参数个数名称必须和arg-names内的以及通知(advice)中的参数名称一致。
对于args和arg-names,除非有比较特殊的需求,不然基本也不会使用。作为任性的我,看到网上一波波介绍Spring expression表达式时都会copy这个用法,就在看源码的同时特意对它们进行了测试,因此留下这篇给自己和他人以后万一使用时做个参考。