JavaEE——Spring4--(10)Spring 事务的属性(传播属性,隔离级别,回滚,只读,过期)

1、传播属性:当事务方法被另一个事务方法调用时, 必须指定事务应该如何传播.

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

 

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

 

2、隔离级别

用 @Transactional 注解声明式地管理事务时可以在 @Transactional 的 isolation 属性中设置隔离级别.

3、回滚  通常取默认值即可

默认情况下只有未检查异常(RuntimeException和Error类型的异常)会导致事务回滚. 而受检查异常不会.
事务的回滚规则可以通过 @Transactional 注解的 rollbackFor 和 noRollbackFor 属性来定义.

 

4、只读 使用readOnly设置

表示这个事务只读取数据但不更新数据, 这样可以帮助数据库引擎优化事务.

5.过期 使用timeout指定强制回滚之前事务可以 占用的时间

 

posted @ 2018-01-17 22:32  SkyeAngel  阅读(154)  评论(0编辑  收藏  举报