目标功能save(user),update(user),delete(id)
增强功能【日志控制】
1,抛出一个问题:我们想在每一个目标方法上加上日志控制,如果直接在目标方法上添加日志控制的代码,那么后期维护是不是不方便,耦合度太高。
2,第二个问题:在第一种方法的基础上,我们不直接写在目标方法上,我们把日志控制代码单独抽取出来。然后在目标方法上进行引用,后期维护我们是不是只修改抽取出来的文件代码即可。
3,第三个问题:在第二个问题的基础上,上面说在目标方法上进行引用,那是不是目标功能和日志控制功能耦合死了。
4,接下来进行解决,运行是在内存中进行的,运行时我们能否把日志控制,和目标方法进行结合。先拿日志控制,在拿目标功能。那怎么进行结合呢?-------通过配置文件
现在总结AOP是个什么呢?
就是完成这个动态结合的技术就是AOP
那切面实际上可以理解为目标功能和增强功能结合到一起,叫做一个切面。
实际上,AOP 的底层是通过 Spring 提供的的动态代理技术实现的。在运行期间,Spring通过动态代理技术动态 的生成代理对象,
代理对象方法执行时
进行增强功能的介入,在去调用
目标对象的方法
,从而完成功能的增强。