Spring AOP 简述

本文介绍Spring AOP的主要用途,包括业务与事务解耦、性能监控和事务管理等。阐述了Spring AOP的工作原理,包括使用动态代理技术在运行时植入增强逻辑。同时,解释了AOP的关键概念,如连接点、切点、增强、目标对象、引介、植入和代理等。

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

Spring AOP 主要用于实现业务和事务解耦。
例如用于实现性能监控,事务管理

实现原理:
Spring AOP 是使用动态代理在运行期间植入增强的功能代码。

JDK代理的局限:只能为接口创建代理实例。
CGLib采用字节码技术,可以为类创建一个子类,并在子类创建方法拦截父类所有的方法,并植入横切逻辑。

Spring AOP的底层是通过使用JDK动态代理或者CGLib动态代理为目标bean植入横切逻辑的。

AOP的一些基本术语

  • 连接点:程序执行的某个特定位置:如类初始化的前后,函数调用的前后,方法抛出异常的前后。Spring仅支持方法调用的前后的连接点。

  • 切点:定位连接点的条件(犹如SQL的查询条件)

  • 增强:是植入到目录类连接点上的一段程序
  • 目标对象(Target):增强逻辑需要植入的目录类
  • 引介(Introduction):是一种特殊的增强,可以为类添加属性和方法。
  • 植入(Weaving):是将增强添加到目录类中连接点的动作

- 代理(Proxy):帮助(代理)目标类完成增强功能的工具类

常用的增强有:
1. 前置增强:在目标类的方法执行之前嵌入增强逻辑,实现接口 MethodBeforeAdvice
2. 后置增强:在目标类的方法执行之后嵌入增强逻辑,实现接口 AfterReturningAdvice
3. 环绕增强: 在目标类的方法前后嵌入增强逻辑,实现接口 MethodInterceptor
4. 异常抛出增强:当抛出异常之前执行,常用于事务处理的回滚,实现接口ThrowsAdvice
5. 引入增强:
是一种比较特殊的增强类型,不是在目标方法周围植入增强,而是为目标类创建新的方法和属性,所以引入增强的连接点是类级别的,而非方法级别。
通过引入增强,我们可以为目标类添加一个接口的实现(即目标类可能为实现的接口),通过引入增强代理实现新的功能。继承 DelegatingIntroductionInterceptor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值