Spring框架AOP执行原理?AOP在事务管理方面是怎么实现的


Spring AOP 使用的动态代理。

所谓的动态代理就是说AOP框框不会去修改字节码,而是在内存中临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调对象的方法。

Spring AOP 中的动态代理主要有两种方式,JDK动态代理和CGLIB动态代理。

JDK动态代理的核心是InvocationHandler接口和Proxy类。如果目标类没有实现接口,那么Spring AOP会选择使用CGLIB来动态代理目标类。

CGLIB(Code Generation Libray),是一个代码生成的类库,可以在运行时动态生成某个类的子类。注意,CGLIB是通过继承的方式做的动态代理,因为如果某个类被标记为final,那么它是无法使用CGLIB做动态代理的。

 

AOP 在事务管理方面。Spring使用AOP来完成声明式的事务管理有Annotation和xml两种形式。开发中,方便代码编写,很多时候在Spring配置文件中配置事务管理器并开启事务控制注解。在业务类或业务类方法中添加@Transactional实现事务控制。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM