spring框架之AOP模块(面向切面),附带通知类型---超详细介绍

一,AOP简介

     是Spring框架中的一个重要模块,它提供了一种通过面向切面编程的方式来实现横切关注点的模块化的方法。AOP可以将应用程序的核心业务逻辑与横切关注点(如日志记录、事务管理、安全性等)分离开来,从而提高代码的可维护性和可重用性。

简单来说:通过动态代理技术可以在目标对象的方法的执行前、执行后以及抛出异常时织入切面逻辑

比如:书籍的增删改,本身只需要完成增删改的功能即可,这是如果需要添加日志功能,那么需要在原有的代码基础上,去修改添加日志功能,受牵连的方法就三个(add/edit/del)了

1.1 核心概念!(专业术语)

1.1.1 切面(Aspect):

    切面是一个模块,用于封装横切关注点的行为。它由切入点和切面逻辑组成。

1.1.2 切入点(Pointcut):

    切入点定义了在哪些连接点上织入切面逻辑。连接点可以是方法的执行、异常的抛出等。

1.1.3 通知(Advice):

     通知是切面在特定切入点上执行的动作。Spring AOP提供了四种类型的通知:前置通知      (Before)、后置通知(After)、返回通知(After-returning)和异常通知(After-throwing)  

1.1.4 织入(Weaving):

  织入是将切面应用到目标对象并创建代理对象的过程。织入可以通过编译期间的编译期织入、类加载期织入或运行期织入来实现。

   总而言之,Spring AOP提供了一种有效的方式来实现横切关注点的模块化。它能够改善代码的可维护性和可重用性,简化开发过程,并促进松耦合的设计

二,通知(7种)

为了让大家更能理解

普通spring-Config ioc实列:

定义一个接口类一个实现类,定义两个方法购书,发表评论方法

接口类 :

实现类:实现接口类方法

需要一个异常类,以便后续抛异常处理

 接下来就是spring ioc的配置,如果没有spring Config文件。那就是pom.xml文件没有配置好且配置的时候需要联网!

 spring Config 配置

运行结果

 2.1 前置通知

 根据上面实列来进行前置通知

 在目标方法执行之前执行的通知。前置通知可以访问和修改方法的参数。

 定义一个类并继承MethodBeforeAdvice 该所被继承的类是前置通知的类 

spring Config Ioc的配置

测试结果

2.2 后置通知

在目标方法执行之后(无论是否发生异常)执行的通知。后置通知不能访问方法的返回值

 定义一个类并继承AfterReturningAdvice 该所被继承的类是后置通知的类 

spring Config Ioc的配置:

运行结果 

2.3 环绕通知

 环绕通知是最强大和最灵活的通知类型。它将包围目标方法的执行,可以在方法执行前后自定义处理逻辑。环绕通知必须显式地决定是否继续执行目标方法

 定义一个类并继承MethodInterceptor 该所被继承的类是环绕通知的类 

spring Config Ioc的配置:

运行结果:

 2.4 异常通知

在目标方法抛出异常后执行的通知。异常通知可以访问抛出的异常信息,并在必要时处理异常

 定义一个类并继承ThrowsAdvice 该所被继承的类是异常通知的类 

spring Config ioc文件

运行结果

2.5 过滤通知

在目标方法顺利执行并返回结果后执行的通知。返回通知可以访问并修改方法的返回值。

 spring Config ioc文件配置即可

运行结果:

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.Doll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值