spring中的事务管理(二)

来源:互联网 发布:iplocation.class.php 编辑:程序博客网 时间:2024/05/16 19:54

 spring中的事务管理(二)

事务传播属性

        当事务方法被另一个事务方法调用时, 必须指定事务应该如何传播. 例如: 方法可能继续在现有事务中运行, 也可能开启一个新事务, 并在自己的事务中运行.

        事务的传播行为可以由传播属性指定. Spring 定义了 7  种类传播行为.

 

Spring 支持的事务传播行为

 

REQUIRED传播行为

当 bookService 的 purchase() 方法被另一个事务方法 checkout() 调用时, 它默认会在现有的事务内运行. 这个默认的传播行为就是 REQUIRED. 因此在 checkout() 方法的开始和终止边界内只有一个事务. 这个事务只在 checkout() 方法结束的时候被提交, 结果用户一本书都买不了

事务传播属性可以在@Transactional 注解的 propagation 属性中定义

 

REQUIRES_NEW传播行为

另一种常见的传播行为是REQUIRES_NEW. 它表示该方法必须启动一个新事务, 并在自己的事务内运行. 如果有事务在运行, 就应该先挂起它.

 

事务通知中配置传播属性




原创粉丝点击