五(二)、spring|五(二)、spring 声明式事务xml配置

概述: 接着上一节内容,把注解配置@@Transactional形式改为xml配置形式;
一、配置步骤 1.配置事务管理器

1 2 3 4


2.配置事务属性
1 2 3 4 5 6


3.配置切点
1 2 3 4 5

execution(public void lixiuming.spring.tx.xml.service.*.*(..)) 的说明 ,详见三(二)、AOP配置

附上xml文件:
1 2 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

4.测试方法:
1 package lixiuming.spring.tx.xml; 2 3 import java.util.Arrays; 4 5 import org.junit.Test; 6 import org.springframework.context.ApplicationContext; 7 import org.springframework.context.support.ClassPathXmlApplicationContext; 8 9 import lixiuming.spring.tx.xml.service.BookShopService; 10 import lixiuming.spring.tx.xml.service.Cashier; 11 12 public class SpringTransactionTest { 13 14private ApplicationContext cxt = null; 15private BookShopService parchase = null; 16private Cashier c = null; 17 18{ 19cxt = new ClassPathXmlApplicationContext("applicationcontext22.xml"); 20parchase = (BookShopService) cxt.getBean("bookShopService"); 21c = (Cashier) cxt.getBean("cashier"); 22} 23 24@Test 25public void testCheckout() { 26c.checkout("aa", Arrays.asList(1001, 1001)); 27 28} 29 30@Test 31public void testpurchase() { 32parchase.purchase("aa", 1001); 33} 34 35 }

测试:
测试前提:用户账户表 账户金额为120 ; 书号1001和1002的图书库存为 10 ;购买第一本书时,账户余额是够的,但是第二本书钱不够;
【五(二)、spring|五(二)、spring 声明式事务xml配置】当第一次运行testCheckout时,报错为余额不足; 书号1001和1002的图书库存为 还是为10;用户账户表 账户金额为120 ;

    推荐阅读