项目已提交至Github 地址:https://github.com/ylw-github/pingyougou.git 版本:2646456bff33de6ccecb9a598b156fecef78abed
引出问题编写单元测试,新增add 方法。
/**
* 增加
*/
@Override
public void add(Goods goods) {
goods.getGoods().setAuditStatus("0");
goodsMapper.insert(goods.getGoods()); //插入商品表
int x=1/0;
goods.getGoodsDesc().setGoodsId(goods.getGoods().getId());
goodsDescMapper.insert(goods.getGoodsDesc());//插入商品扩展数据
saveItemList(goods);//插入商品 SKU 列表数据
}
在插入商品表后,人为制造一个异常。我们运行程序,新增商品数据,观察运行结果。
通过观察,我们发现,程序发生异常 ,商品表仍然会存储记录,这是不符合我们要求的。这是因为我们目前的系统还没有配置事务。
配置事务 1.配置文件在 pinyougou-sellergoods-service 工程的 spring 目录下创建 applicationContext-tx.xml
2.在方法上添加注解
/**
* 服务实现层
* @author Administrator
*
*/
@Service
@Transactional
public class GoodsServiceImpl implements GoodsService{
........
}
经过测试,我们发现,系统发生异常,商品表不会新增记录,事务配置成功。
最后需要将所有涉及多表操作的服务类添加事务注解。