Spring AOP概述
Posted minguo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring AOP概述相关的知识,希望对你有一定的参考价值。
横切关注点(cross-cutting point),散布于应用中多处的功能。从概念上讲是与应用的业务逻辑分离的。把横切关注点与业务逻辑分离是面向切面编程所解决的问题。
切面帮助我们模块化横切关注点。
通知(advice),定义了切面是什么以及何时使用。Spring有5种类型的通知。
- 前置通知
- 后置通知
- 返回通知
- 异常通知
- 环绕通知
连接点(join point),在应用执行过程中能插入切面的一个点,可以是调用方法时、抛出异常时、修改一个字段时。切面代码利用这些点插入到应用的正常流程中,添加新行为。
切点(pointcut),用来匹配通知所要织入的一个点或多个连接点。通常使用类和方法名来指定这些切点。
切面(aspect),通知和切点的结合,共同定义切面的全部内容,是什么,在何时和何处完成功能。
引入(introduction),允许我们向现有类添加新方法和属性。
织入(weaving),把切面应用到目标对象并创建新的代理对象的过程。切面在指定的连接点被织入目标对象中,在声明周期里有多个点可以织入:
- 编译期:切面在目标类编译时被织入。
- 类加载期:切面在目标类加载到JVM时被织入。
- 运行期:切面在应用运行时某个时刻被织入。
Spring对AOP的支持
Spring提供了4中类型的AOP支持:
- 基于代理的经典的SpringAOP
- 纯POJO切面
- @AspectJ注解驱动的切面
- 注入式AspectJ切面
Spring所创建的通知都是用标准的Java类编写的。
Spring在运行期把切面织入到Spring管理的bean中
因为Spring基于动态代理,所以Spring只支持方法连接点。
通过切点来选择连接点
在SpringAOP中,使用AspectJ的切点表达式语言来定义切点。
以上是关于Spring AOP概述的主要内容,如果未能解决你的问题,请参考以下文章