Spring框架监控切入点方法的执行,同时提高了开发的效率

什么是AOP
AOP是Aspect Oriented Programming的缩写 , 意思为面向切面编程 , 是通过预编译的方法和运行期动态代理实现程序的统一维护的一种技术
AOP是OOP(面向对象)的延续 , 是软件中的一个热点 , 也是Spring框架中的一个重要内容 , 是函数式编程的一种衍生范型 。 利用AOP可以对业务逻辑的各个部分进行隔离 , 从而使得业务逻辑各部分之间的耦合度降低 , 提高程序的可重用性 , 同时提高了的效率 。
AOP的作用及其优势
作用
在程序运行期间 , 在不修改源码的情况下对方法进行功能增强
优势
减少重复代码 , 提高效率 , 并且便于维护
AOP的底层实现
实际上 , 在AOP的底层是通过Spring提供的动态代理技术实现的 。 在运行期间 , Spring通过动态代理技术动态生成代理对象 , 代理对象方法执行时进行增强功能的介入 , 在去调用目标对象的方法 , 从而完成功能的增强 。
AOP的动态代理技术
常用的动态代理技术:
JDK代理:基于接口的动态代理技术
cglib:基于父类的动态代理技术
AOP相关概念
相关术语
Target(目标对象)代理的目标对象
Proxy(代理)一个被AOP织入增强后 , 就产生一个结果代理类
Joinpoint(连接点)所谓连接点是指那些被拦截到的点 。 在spring中 , 这些点指的是方法 , 因为spring只支持方法类型的连接点
【Spring框架监控切入点方法的执行,同时提高了开发的效率】Pointcut(切入点)所谓切入点是指我们要对哪些Joinpoint进行拦截定义
Advice(/增强)所谓是指拦截到Joinpoint之后所要做的事情就是
Aspect(切面)是切入点和(引介)的结合
Weaving(织入)是指把增强应用到目标对象来创建新的代理对象的过程 。 Spring采用动态代理织入 , 而AspectJ采用编译期织入和类装载期织入
AOP的明确事项
需要编写的内容
编写核心业务代码(目标类的目标方法)
编写切面类 , 切面中有(增强功能的方法)
在配置文件中织入关系 , 即将哪些与哪些连接点进行结合
AOP技术实现的内容
Spring框架监控切入点方法的执行 。 一旦切入点方法被运行 , 使用代理机制 , 动态创建目标对象的代理对象 , 根据类别 , 在代理对象的对应位置 , 将对应的功能织入 , 完成完整的代码逻辑运行 。
AOP底层使用哪种代理方式
在spring中 , 框架会根据目标类是否实现了接口来决定采用哪种动态代理的方式
基于XML的AOP
快速入门
导入AOP相关的坐标
Spring框架监控切入点方法的执行,同时提高了开发的效率
文章图片
创建目标接口和目标类(内部有切点)
Spring框架监控切入点方法的执行,同时提高了开发的效率
文章图片
Spring框架监控切入点方法的执行,同时提高了开发的效率
文章图片
创建切面类(内部有增强方法)
Spring框架监控切入点方法的执行,同时提高了开发的效率
文章图片
将目标类和切面类的对象创建权交给spring
Spring框架监控切入点方法的执行,同时提高了开发的效率
文章图片


推荐阅读