Spring:Spring事务的实现方式原理是什么?

事务的两种方式

在使用Spring框架的时候,可以有两种事务的实现方式,一种是编程式事务,由程序员自己通过代码来控制事务的处理逻辑;还有一种是声明式事务,通过@Transactional注解来实现。

说明

其实事务的操作本来应该是由数据库进行控制的,但是为了方便编程人员进行业务逻辑的操作,Spring对事务功能进行了扩展实现,一般我们很少会用编程式事务,更多的是通过在方法上添加@Transactional注解来实现,当添加此注解之后事务的自动提交功能就会关闭,由Spring框架来帮助进行事务控制。

原理解析

其实事务操作是AOP的一个核心体现,当一个方法添加@Transactional注解后,Spring会基于这个类生成一个代理对象,将这个代理对象作为bean,当使用这个代理对象的方法时,如果有事务处理,那么会先把事务的自动提交给关闭,然后执行具体的业务逻辑。如果逻辑没有出现异常,那么事务就会自动提交;如果出现任何异常情况,那么直接进行回滚操作,当然用户也可以控制对哪些异常进行回滚操作。

经验分享 程序员 微信小程序 职场和发展