这次使用xml来配置。

废话不多说,去掉所有注释,来看项目的基本结构。

因为还没有配置事务,所以暂时还看不到事务效果,等基本的方法运行正常,再来测试事务。

项目结构:

1

一、先实现没有事务的逻辑

配置文件appilcationusexml.xml

还有bookstockexception.java、buyermoneyexception.java两个错误类。

确保正确运行。

二、配置事务

(1)配置事务管理器

xml配置事务基于这个类:org.springframework.jdbc.datasource.DataSourceTransactionManager

事务从根本上是作用于数据源,所以必须配置这样一个<property>

(2)配置事务属性

(3)配置事务切入点,以及把事务切入点和事务属性关联起来

事务作用于哪些类的哪些方法上。

现在是不是感觉和spring配置aop有点像?

当前appilcationusexml.xml:

  1. 当金额为20,一本书都无法购买,当爆出金额不足错误的时候,事务正常回滚。
  2. 当金额为120,足够买一本书的时候,正常购买。

更改事务作用域:

让作用域覆盖cashier的checkout()方法,使事务也作用于checkout()。

  1. 当金额为120的时候,虽然买得起第一本书,但是买不起第二本书。
  2. 这个时候check()报错,事务回滚,两本书都不能购买。

三、配置事务的其他属性

设置独立事务属性,这样就可以正常购买第一本书。

其他属性也是差不多的,就不再一个个配了。

四、总结

  1. Bean该怎么配就怎么配。
  2. 配置事务管理器。
  3. tx:advice配置事务属性,根据方法名指定事务的属性。
  4. 配置事务切入点,以及把事务切入点和事务属性关联起来。

我的理解:

  1. 事务切入点:什么时候做。
  2. 事务属性:做什么、怎么做。

1 对 “spring 事务管理(五)使用xml配置文件的方式配置事务”的想法;

发表评论

电子邮件地址不会被公开。 必填项已用*标注