首页 > 试题广场 >

Spring 中事务管理支持哪几种方式以及每种方式的具体使用

[问答题]
Spring 中事务管理支持哪几种方式以及每种方式的具体使用方法。
1. 声明式事务@Transactional

@Transactional注解是一个用来定义一个接口、类或者方法必须具备事务化语义的元数据; 例如, " 在调用 该方法时挂起所有已经存在的事务,开始一个新的只读事务 ". 下面是@Transactional注解的默认设置:

  • 传播设置是PROPAGATION_REQUIRED.
  • 隔离等级是ISOLATION_DEFAULT.
  • 事务是可读可写的.
  • 事务超时是使用底层事务系统的默认值, 或者在不支持时没有.
  • 任何的RuntimeException触发回滚, 并且所有的检查的Exception不触发.
这些默认设置都是可以修改的。
2. 编程式事务

Spring Framework提供了两种方式的编程式事务管理:

  • 使用TransactionTemplate.
  • 直接使用PlatformTransactionManager的一个实现.

Spring一般都推荐使用TransactionTemplate来进行编程式事务管理. 第二种方式有点类似于使用JTA的 UserTransaction接口, 尽管异常处理没有那么复杂化了.


发表于 2017-06-06 17:10:39 回复(0)

Spring可以通过程序控制声明两种方式管理事务。程序控制可以精确的控制事务回滚的节点,但是程序与业务代码耦合在一起;声明方式低耦合,但是在对于复杂事务的控制上不如程序控制的方式。

由于题目要求写出具体使用方法,而具体使用方法在Spring的官方文档有给出,这里完整详细的贴出来也不太合适:

Spring Framework 4.37

不习惯看英文的童鞋可以看中文:

Spring Framework 中文文档

发表于 2017-03-01 18:50:17 回复(0)