JavaWeb——Spring系列
三、AOP 技术
- Spring AOP 技术,是 Spring 框架的另一个较为重要的特性,是核心功能之一。
- AOP(Aspect Oriented Program),中文译为面向切面编程,与面向对象编程(OOP)一样是一种编程思想,为弥补OOP的不足而诞生的一门新的编程思想。
- Spring AOP 的实现有 JDK 代理和 CGLIB 代理两种,由于现在 JVM 性能的提高,这两者代理性能已经没有多大区别。
1、基本术语
- 切面是对象操作过程中的截面,切面具体就是一段程序代码,一段被植入到程序流程中的代码。
- 连接点,对象操作过程中的某个阶段点;程序流程图上的任意一点都可以是连接点。
- 切入点是连接点的集合;更为形象的说话就是:切面与程序流程的“交叉点”便是程序的切入点,即切面注入到程序中的位置。
- 目标对象(Target),所有被通知的对象。
- 织入(Weaving)是指将切面功能应用到目标对象的过程。
- 引入(Introduction),对一个已经编译完的类(class),在运行期间,动态地向这个类中加载属性和方法。
2、AOP 简单示例
- 在 src 目录下地适当位置编写下面三个类,
package com.myCode.AOPCode.target; public class Target { //程序执行的方法 public void execute(String name){ System.out.println("执行 execute() 方法:"+name); } }
package com.myCode.AOPCode.log; import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; public