一、AOP概念、作用

AOP和OOP一样都是一种编程思想,用来指导我们做程序的。
OOP面向对象编程指导我们做类、对象、继承、封装、多态等。
AOP面向切面编程作用:在不惊动原始设计(不改变源代码)的基础上为其进行功能增强。
核心:将每一个方法(这些方法称为连接点)共同具有的功能抽取出来单独实现一个方法(这个方法叫通知)。哪些方法要通过AOP增加功能的这些方法叫切入点。那么如何把通知和切入点联系起来呢?这就需要新的一个东西叫做切面,切面就是在哪些切入点上执行哪些通知,同时面向切面编程中的切面就是指的这个切面。

AOP核心概念:

二、AOP入门案列

导入两个依赖包:aop和aspectj (aop包已经包含在org.springframework包中)


最重要:定义切入点

详细步骤:







三、AOP工作流程


SpringAOP本质:代理模式
四、AOP切入点表达式
语法格式、通配符、书写技巧


通配符描述切入点:


五、AOP通知类型





六、AOP通知获取数据
三种数据:原始操作的参数、返回值、异常




案例:AOP通知获取参数并修改再返回到原始代码中:

