乐趣区

关于springboot:Spring-AOP

Spring AOP 简介

1.1 AOP 概述

AOP 是一种设计思维,是软件设计畛域中的面向切面编程,它是面向对象编程(OOP)的一种补充和欠缺。它以通过预编译形式和运行期动静代理形式,实现在不批改源代码的状况下给程序动静对立增加额定性能的一种技术。

1.2 AOP 遵循的准则

AOP 基于 OCP(开闭准则): 在不扭转原有系统核心业务代码的根底上动静增加一些扩大性能并能够“管制”对象的执行。例如 AOP 利用于我的项目中的日志解决,事务处理,权限解决,缓存解决等等。

1.3 Spring AOP 利用原理剖析

Spring AOP 底层基于代理机制(动静形式)实现性能扩大:
1)JDK 代理:如果指标对象(被代理对象)实现接口,则底层能够采纳 JDK 动静代理机制为指标对象创立代理对象(指标类和代理类会实现独特接口)
2)CGLIB 代理:如果指标对象(被代理对象)没有实现接口,则底层能够采纳 CGLIB 代理机制为指标对象创立代理对象(默认创立的代理类会继承指标对象类型)

1.4 Spring AOP 相干术语剖析

①切面 (Aspect): 横切面对象, 个别为一个具体类对象 (能够借助 @Aspect 申明)。
②告诉 (Advice): 在切面的某个特定连接点上执行的动作,例如 around,before,after 等。
③连接点 (joinpoint): 程序执行过程中某个特点的点,个别指向被拦挡到的指标办法。
④切入点 (pointcut): 对多个连接点一种定义,个别能够了解为多个连接点的汇合。

退出移动版