SpringBoot基于注解的面向切面编程

本文介绍了SpringBoot中的面向切面编程(AOP),强调了AOP在解耦和提高模块化方面的作用。详细解释了通知(advice)的五种类型:前置、后置、返回、异常和环绕通知,并探讨了切点(pointcut)、连接点(join point)和切面的概念。文章特别提到了Spring对@AspectJ注解的支持,如何定义和使用切面以及拦截规则。

AOP 中,模块化单位是方面,可以将一个方面想像为在独立实体中实现了软件系统中(横切)部分的常见功能,其主要目的是通过分离这些横切关注点而增加模块化 ,同时也符合DRY (不要重复你自己)原则,以避免代码重复
spring aop 是为了解耦 ,让一组类共享相同的行为,使用 切面来满足跨应用程序的横切关注点,从而提高应用程序的模块化
定义AOP 的术语:

  1. 通知:(advice)
    切面的目标 – 必须完成的工作 ,切面的工作称为通知 通知定义了切面是什么以及何时使用, 除了描述切面要完成的工作,通知还解决了何时执行这个工作的问题

spring 切面有五种类型的通知
前置通知(before)在目标方法被调用前调用通知功能

后置通知(after) 在目标方法完成后调用通知 ,不管接合点是否执行,都会执行通知,接合点的执行可能正常放回或者抛出异常,但不管发现,通知代码都会被执行

返回通知(after-returning) 在目标方法成功执行之后调用通知 ,如果从一个通知方法中抛出一个异常,则不会执行该通知

异常通知 (after-throwing )在目标方法抛出异常后被调用

环绕通知(around)在被通知的方法调用之前和调用之后执行自定义的行为 实际上通过围绕结合点而在其周围 当调用之前执行完成,并没有错误,可以使用point.proceed(); 进入调用之后
2. 切点(pointcut)
切点的定义会匹配通知所需要织入一个或多个连接点,一般使用明确的类和方法名称,或者利用正则表达式定义所匹配的可和方法的名称来指定这些切点 。可以将切点看作是用来缩小切面所通知的连接点的范围

  1. 连接点(join point)
    连接点是在应用执行过程中能够插入切面的一个点,这个点可以是调用方法时,抛出异常时,切面代码可以利用这些点插入到应用的正常流程之中,并且添加新的行为
  2. 切面
    切面是通知和切点的结合,通知和切点共同定义了切面的全部内容 ----是什么,在何时和何处完成其功能

spring 支持as

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值