在
Spring
中,事务有两种实现方式:
- 编程式事务管理:
- 编程式事务管理使用
TransactionTemplate
可实现更细粒度的事务控制。- 声明式事务管理:
- 基于
Spring AOP
实现。- 其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务。
- 在执行完目标方法之后根据执行情况提交或者回滚事务。
声明式事务管理不需要入侵代码,通过
@Transactional
就可以进行事务操作。
编程式事务
编程式事务,
Spring
已经给我们提供好了模板类TransactionTemplate
。
声明式事务
声明式事务整体调用过程:
使用代理模式,生成代理增强类。
根据代理事务管理配置类,配置事务的织入,在业务方法前后进行环绕增强,增加一些事务的相关操作。
例如获取事务属性、提交事务、回滚事务。