文章目录
一、编程式事务
1.1 什么是编程式事务
- 编程式事务是指通过手动编写 程序来管理事务,即通过编码的方式 直接控制事务的提交 和回滚
- 在java 中,通常使用事务管理器(如Spring 中的PlatformTransactionManager)来实现编程式事务
1.2 编程式事务的优缺点
- 编程式事务的主要优点 是灵活性高 ,可以按照自己的需求来控制事务的粒度、模式等
- 其缺点是需要编写大量的代码。可读性和可维护性不是很好,代码复用性不高
二、声明式事务
2.1 什么是声明式事务
- 声明式 事务是指使用 注解 或 XML 配置的方式来控制事务的提交 和回滚 ,只要告诉哪个方法需要事务即可,这就是声明式,程序员只需要写配置即可
2.2 声明式事务的优点
- 开发者只需配置即可,具体事务的控制实现由第三方框架实现,避免我们直接对事务进行操作
- 声明式事务可以将业务代码 和事务逻辑分开来,提高代码的可读性和可维护性
2.3 Spring 事务管理器
- Spring 声明式事务对应的依赖
- spring-tx:包含声明式事务实现的基本规范(事务管理器规范接口 和事务增强等 )
- spring-jdbc: 包含DataSource 方式事务管理器实现类(DataSource) DataSourceTransactionManager
- spring-orm:包含其他持久层框架的事务管理器实现类 ,如Hibenate、jpa 等
- 如果持久层使用的是JDBC、JdbcTemplate、MyBatis,那么就用DataSourceTransactionManager,也就是导入spring-jdbc依赖
- 如果持久层使用的Hibenate,那么就用HibernateTransactionManager,也就是导入spring-orm 依赖
2.4 spring 声明式事务使用
- 只读模式设置
- 事务超时设置