欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring事务的传播行为

程序员文章站 2022-05-06 21:42:41
...

一:事务的传播属性

  • 当事务方法被另一个事务方法调用时,必须指定事务如何传播。例如:方法可能继续在现有事务中执行,也可能开启一个新的事务,并在自己的事务中运行。
  • 事务的传播行为是由传播属性指定,spring定义了七种类的传播行为。
  • Spring事务的传播行为
  • Spring事务的传播行为
  • Spring事务的传播行为
  •  

 二:实现代码

package com.dhx.tx;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Service
public class BookShopServiceImpl implements BookShopService{
	
	@Autowired
	private BookShopDao bookShopDao;
	

	//添加事务注解
	/*
	 * 使用propagation来指定事务的传播行为,即当前事务被另一个事务方法调用时
	 * 如何使用事务,默认取值为REQUIRED,即使用调用方法的事务
	 * REQUIRES_NEW:事务自己的事务,即调用方法的事务被挂起
	 */
	@Transactional(propagation=Propagation.REQUIRES_NEW)
	@Override
	public void purchase(String username, String isbn) {
		// 获取书的单价
		int price=bookShopDao.findBookPriceByIsbn(isbn);
		//书的库存减一
		bookShopDao.updateBookStock(isbn);
		//更新用户余额
		bookShopDao.updateAccount(username, price);
		
	}

}

 

相关标签: spring