1.什么是AOP
AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行 期动态代理实现程序功能的统一维护的一种技术。
2.AOP的作用以及优势
作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强
优势:减少重复代码,提高开发效率,并且便于维护
3.AOP中常用的动态代理
JDK 代理 : 基于接口的动态代理技术
cglib 代理:基于父类的动态代理技术
4.AOP的相关概念
Target(目标对象):代理的目标对象
# Proxy (代理):一个类被 AOP 织入增强后,就产生一个结果代理类
# Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,因为 spring只支持方法类型的连接点。
# Pointcut(切入点):所谓切入点是指我们要对哪些 Joinpoint 进行拦截的定义。
# Advice(通知/ 增强):所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知
# Aspect(切面):是切入点和通知的结合
# Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程。spring采用动态代理织 入,而AspectJ采用编译期织入和类装载期织入。
5.切点表达式
execution([修饰符] 返回值类型 包名.类名.方法名(参数))
常用的书写格式: execution(* 包名.*.*(..))