AOP采取横向抽取机制,即将分散在各个方法中的重复代码提取出来,然后在程序编译或运行阶段将这些抽取出来的代码应用到需要执行的地址。
AOP的术语
- 通知:切面的具体功能和使用场景,它定义了切面的具体功能是什么以及何时被使用。
- 连接点:它表示在业务逻辑执行过程中能够插入切面通知的一个点。在Spring中,这个点可以是调用方法时、调用方法后、抛出异常时。
- 切入点:是指需要处理的连接点。“通知”定义了切面是"什么"和"何时使用"作用,切点则定义了"切面"在"何处"使用。
- 切面:切面即切点和通知的集合,它定义了它是什么,在何时、何处完成这个功能。
- 增强:通过一些操作让类可以完成原来做不到的事情。常见的增强方法包括
- 目标对象:需要增强的类生成的对
- 代理对象:通过AOP框架,对目标对象增强生成的新对象,它可以拥有目标对象没有的行为和属性。
- 织入:是将切面代码插入到目标对象上,从而生成代理对象的过程。
Struts2拦截器设计是基于AOP的思想