一、声明式事务配置
1、applicationContext.xml配置
① 配置事务管理器(jdbc控制管理方式)
说明:
i、 jdbc控制事务管理器
DataSourceTransactionManager
ii、jta控制事务管理器(Java Transaction API)
JtaTransactionManager
iii、Hibernate控制事务管理器
HibernateTransactionManager
② 启用事务注解
注:这之前需要先导入tx命名空间
2、业务层方法配置
① 业务实现方法BookShopServiceImpl方法体前加@Transactional注解
package com.lty.tx;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;@Service("bookShopService")public class BookShopServiceImpl implements BookShopService { @Autowired private BookShopDao bookShopDao; //添加事务注解 @Transactional @Override public void purchase(String username, String isbn) { //1、获取书的单价 int price = bookShopDao.findBookPriceByIsbn(isbn); //2、更新书的库存 bookShopDao.updateBookStock(isbn); //3、更新用户余额 bookShopDao.updateUserAccount(username, price); }}
说明:
i、可以在方法或者类级别上添加 @Transactional 注解. 当把这个注解应用到类上时, 这个类中的所有公共方法都会被定义成支持事务处理的