Aop常见的增强方式

AOP常用的几种增强方式,各自的特点(代码辅助)?\nAOP在Spring框架中应用非常广泛,我们平时最常见的事务,就是使用AOP来实现的;在方法前开启事务,方法后提交事务,检测到有异常时,回滚事务...

在Spring中的AOP有6种增强方式,分别是:

1、Before 前置增强

 

2、After 后置增强

 

3、Around 环绕增强

4、AfterReturning 最终增强

5、AfterThrowing 异常增强

6、DeclareParents 引入增强

AOP(面向切面编程)是一种软件设计思想,它主要用于解耦系统中的横切关注点(cross-cutting concerns),例如日志记录、事务管理和安全性等。AOP的实现方式和底层原理可以通过以下几个方面来理解。 1. 静态代理:AOP最简单的实现方式是使用静态代理。静态代理是通过手动编写代理类来实现的,代理类在目标方法的前后添加额外的逻辑,从而实现横切关注点的功能。 2. 动态代理:动态代理是AOP中常用的实现方式之一,它使用了Java的反射机制。动态代理通过在运行时创建代理对象,将目标对象的方法调用委托给代理对象,并在方法调用前后添加额外的逻辑。常见的动态代理实现方式有基于接口的代理(JDK动态代理)和基于类的代理(CGLIB动态代理)。 3. 字节码增强:字节码增强是一种在运行时修改目标类的字节码来实现AOP方式。通过使用字节码增强工具,可以在目标类的方法调用前后插入字节码指令,从而实现横切关注点的功能。常见的字节码增强工具有ASM、Javassist和Byte Buddy等。 4. 面向切面编程框架:除了上述的实现方式,还有一些专门用于实现AOP的框架,例如Spring AOP。这些框架通常通过动态代理或字节码增强来实现AOP功能,并提供了更方便的配置和使用方式。 底层原理上,AOP的实现方式主要依赖于动态代理和字节码增强技术。动态代理通过创建代理对象来包装目标对象,将横切关注点的逻辑添加到代理对象中。字节码增强则是通过修改目标类的字节码来实现横切关注点的功能。无论是动态代理还是字节码增强AOP的底层原理都是在运行时对目标对象或目标类进行修改,从而实现横切关注点的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值