标签搜索

Spring AOP

ChencyCT
2024-03-26 / 0 评论 / 1 阅读 / 正在检测是否收录...

概述

AOP(Aspect Oriented Programming)是一种切面编程思想。面向切面编程是将程序抽象成各个切面,将那些影响了多个类的公共行为抽取到一个可重用的模块里,减少系统的重复代码,降低模块之间的耦合度,增强代码的可操作性和可维护性。

AOP把软件系统分为两把部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处都基本相似。比如权限认证、日志、事务处理、增强处理。

AOP特性

通知(Advice):AOP框架中的增强处理。通知描述了切面何时执行以及如何执行增强处理。
连接点(Join point):连接点表示应用执行过程中能够插入切面的一个点,这个点可以是方法的调用、异常的抛出。在Spring AOP中,连接点总是方法的调用。
切点(PointCut):可以插入增强处理的连接点。
切面(Aspect):切面是通知和切点的结合
引入(Introduction):允许我们向现有的类添加新的方法或属性
织入(Weaving):将增强处理添加到目标对象中,并创建一个被增强的代理对象

Spring AOP

切点指示器

AspectJ指示器描述
arg()限制连接点匹配参数为指定类型的执行方法
@arg()限制连接点匹配参数由指定注解标注的执行方法
execution()用于匹配连接点的执行方法
this()限制连接点匹配AOP代理的Bean引用为指定类型的类
target()限制连接点匹配目标对象为指定类型的类
@target()限制连接点匹配特定的执行对象,这些队对象对应的类要具备指定类型的注解
within()限制连接点匹配指定的类型
@within限制连接点匹配指定注解所标注的类型
@annotation限制匹配带有指定注解的连接点

注意:只有execution是唯一的执行匹配,其他的指示器都是用于限制匹配的。

通知类型

通知类型描述
@Before通知方法会在目标调用前执行
@After通知方法会在目标方法返回或异常后调用
@AfterReturning通知方法会在目标方法返回后调用
@AfterThrowing通知方法会在目标方法抛出异常后调用
@Around通知方法会将目标方法封装起来

Spring AOP配置方法

注解方式

使用@PointCut注解声明切点表达式,然后使用表达式。

0

评论 (0)

取消