========
事务配置
========
基于JDBC持久化层的事务管理器,可以XML或注解两种方式配置事务。
1 通过XML配置事务
将spring.xml备份到spring_old.xml,在spring.xml中配置事务。
添加事务和AOP名字空间:
...
配置AOP代理:
配置事务管理器:
配置事务通知:
配置切面:
无故障情况下运行测试用例:
cn.tedu.springjdbc.test.SpringJDBCTestAccountService.testTransferAccounts: true
看库。
有故障情况下运行测试用例:
看库,源账户和目的账户中的余额都没有发生变化。
2 通过注解配置事务
将spring.xml备份到spring_new.xml,恢复spring_old.xml为spring.xml。
添加事务名字空间:
...
配置事务管理器:
启用事务注解:
为需要作为事务处理的方法添加Transactional注解:
// 转账
@Transactional(propagation = Propagation.REQUIRED)
public boolean transferAccounts(int outId, int inId, double money) {
...
}
无故障情况下运行测试用例:
cn.tedu.springjdbc.test.SpringJDBCTestAccountService.testTransferAccounts: true
看库。
有故障情况下运行测试用例:
看库,源账户和目的账户中的余额都没有发生变化。
以上两种配置事务的方法并不冲突,可以结合使用。