Spring--AOP概述

什么是AOP, 面向切面编程

AOP为Aspect Oriented Programming的缩写, 意为:面向切面编程, 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. AOP是OOP的延续, 是函数式编程的一种衍生范型. 利用AOP可以对业务逻辑的各个部分进行隔离, 从而使得业务逻辑各部分之间的耦合度降低, 提高程序的可重用性, 同时提高了开发的效率. -解耦

传统开发模型: 纵向的编程.

在这里插入图片描述

面向切面编程: 纵横配合的编程.

在这里插入图片描述

在这里插入图片描述

AOP的作用及优势

作用:
在程序运行期间,不修改任何相关源码对已有方法进行增强。
优势:
减少重复代码、提高开发效率、维护方便

AOP的实现方式

使用动态代理模式来实现

什么是动态代理技术?

Java中的动态代理,就是使用者使用的不是真实的对象,而是使用的一个代理对象,而这个代理对象中包含的就是真实的对象,代理对象就是不改变原有对象的功能方法的基础之上封装新的功能

动态代理不是在编译阶段产生的代理对象,而是在JVM运行中动态产生的

SpringAOP使用代理技术两种 1,Java官方的JDK动态代理技术 2,CGLIB 第三方代理技术