Spring
管理事务的⽅式有⼏种?
1.
编程式事务,在代码中硬编码。
(
不推荐使⽤
)
2. 声明式事务,在配置⽂件中配置(推荐使用)
声明式事务⼜分为两种:
1.
基于
XML
的声明式事务
2.
基于注解的声明式事务
Spring 事务中哪⼏种事务传播⾏为?
⽀持当前事务的情况:
1. TransactionDefinition.PROPAGATION_REQUIRED
:
如果当前存在事务,则加⼊该事务;如果当前没有事务,则创建⼀个新的事务。
2. TransactionDefinition.PROPAGATION_SUPPORTS
:
如果当前存在事务,则加⼊该事务;如果当前没有事务,则以⾮事务的⽅式继续运⾏。
3. TransactionDefinition.PROPAGATION_MANDATORY
:
如果当前存在事务,则加⼊该事务;如果当前没有事务,则抛出异常。(mandatory
:强制性)
不⽀持当前事务的情况:
1.
TransactionDefinition.PROPAGATION_REQUIRES_NEW
:
创建⼀个新的事务,如果当前存在事
务,则把当前事务挂起。
2. TransactionDefinition.PROPAGATION_NOT_SUPPORTED
:
以⾮事务⽅式运⾏,如果当前存在事务,则把当前事务挂起。
3. TransactionDefinition.PROPAGATION_NEVER
:
以⾮事务⽅式运⾏,如果当前存在事务,则抛出 异常。