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):对多个连接点一种定义,个别能够了解为多个连接点的汇合。