Spring-AOP(代理模式)

本文深入探讨了AOP(面向切面编程)的核心概念与应用,解析了如何通过AOP在不影响主流程的情况下,实现代码功能的增强。文章详细解释了AOP中的关键术语,如切面、连接点、切入点、通知等,并介绍了Spring框架下AOP的实现方式及常用接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对aop一些知识的总结,好多图也是找过来的,希望是大家更容易记住更多知识点。

java代理对象作用,例如:实现真实对象的功能,还在真实对象的基础上添加了新的功能,保证真实对象没有被修改 。AOP编程本质上使用的就是代理模式,对现有类的功能进行增强。
在这里插入图片描述

AOP真正目的是:你写代码的时候,只需考虑主流程,而不用考虑那些不重要的,但又必须要写的其它公共代码。这些其它的公共代码就是切面类。

AOP中类与切面的关系
AOP的本质是在一系列纵向的控制流程中,把那些相同的子流程(验证用户)提取成一个横向的面。将分散在主流程中的公共代码提取出来,然后在程序编译或运行时,将这些提取出来的切面代码应用到需要执行的地方。
如:通过切面可以分别在类1和类2方法中加入了事务,日志,权限控制等功能
在这里插入图片描述
AOP的好处,使开发人员在编写业务逻辑时可以专心于核心业务,而不用过多地关注于其他不重要的代码实现,提高了开发效率,增强了代码的可维护性。

AOP术语

  • Aspect(切面):是指封装的用于横向插入的功能(如:事务,日志等)的类。
  • JoinPoint(连接点):在程序执行过程中的某个阶段点,连接点就是指主业务方法的调用。
  • Pointcut(切入点):切面与程序流程的交叉点。在程序中,切入点指的是类或者方法名,满足某一规则的方法都是切入点,后面会学习切入点表达式来制定规则。
  • Advice(通知):切入点处所要执行的程序代码,即切面类中要执行的公共方法。

在这里插入图片描述
Spring的事务管理的方式和常用接口

  1. 方式:

    1. 声明式事务
    2. 注解式事务(注解的声明式事务)
    3. 编程式事务
  2. 常用接口

    PlatformTransactionManager:事务管理器接口

    TransactionDefinition:事务定义对象

    TransactionStatus:事务状态对象

在这里插入图片描述

标签名作用属性
<aop:config>aop配置
<aop:pointcut>配置切入点表达式
<aop:aspect>配置切面
<aop:before>前置通知method:切面类中方法名
pointcut:切入点表达式
pointcut-ref:引用其它切入点表达式
<aop:after-returning>后置通知
<aop:after-throwing>异常通知
<aop:after>最终通知
<aop:around>环绕通知

在这里插入图片描述
说说下面AOP有关的注解的作用

注解说明
@Aspect指定当前类是切面类
@Pointcut放在方法上,指定切入点表达式
@Around环绕通知

在这里插入图片描述
在这里插入图片描述
ProceedingJointPoint接口中的方法

方法名功能
getArgs()得到方法参数
getTarget()得到代理的目标对象
getSignature()得到方法的信息
proceed()调用目标方法

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值