AOP简单介绍
AOP,是面向对象的补充,并不能替代面向对象
AOP将程序中相同的业务逻辑进行横向隔离(横切)
AOP的实现机制
JDK动态代理
JDK动态代理是通过Java.lang.reflect.Proxy类实现的,可以调用Proxy类的newProxyInstance()方法创建代理对象
基于接口的代理,默认情况用JDK
CGLib动态代理
基于类的代理,采用底层的字节码技术,通过继承的方式动态创建代理对象
Spring AOP的XML元素
元素 | 描述 |
<aop:config> | Spring AOP配置的根元素 |
<aop:aspect> | 配置切面 |
<aop:pointcut> | 配置切入点 |
<aop:before> | 配置前置通知,在目标方法执行前实施增强,可以应用于权限管理等功能 |
<aop:after> | 配置后置通知,在目标方法执行后实施增强,可以应用于关闭流,上传文件,删除临时文件等功能 |
<aop:around> | 配置环绕通知 |
<aop:after-returning> | 配置返回通知 |
<aop:after-throwing> | 配置异常通知 |