AOP为Aspect Oriented Programming的缩写,意为:面向切面编程。
AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构。
利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
AOP的作用及优势是什么?
作用:AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能驾监视、事务管理、安全检查、缓存)
在程序运行期间,不修改源码对已有方法进行增强,将业务逻辑和系统处理的代码(关闭连接、事务管理、操作日志记录)解耦。
优势:减少重复代码、提高开发效率、维护方便。
AOP的相关术语介绍:
Joinpoint(连接点):所谓连接点是指哪些被拦截到的点。在spring中这些点指的是方法,因为spring只支持方法类型的连接点。
Pointcut(切入点):切入点是指我们要对哪些Joinpoint进行拦截的定义。
Advice(通知/增强):通知是指拦截到JoinPoint之后所要做的事情就是通知。通知分为前置通知、后置通知、异常通知、最终通知、环绕通知(切面要完成的功能)
Introduction(引介):引介是一种特殊的通知在不修改代码的前提下,Introduction可以在运行期为类动态添加一些方法或Field
Target(目标对象):代理的目标对象
Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程。
Proxy(代理):一个类被AOP织入增加后,就产生一个结果代理类。
Aspect(切面):是切入点和通知的结合。