今天在学习spring中碰到了一个问题,在使用spring Aop进行简易转账事物操作的时候,如果业务流程正常则结果没有问题,而如果在代码中书写一段异常代码按理来说是会事物回滚,而我的代码执行结果是汇款方汇出了钱,但是收款方却没有收到,也就是事务没有回滚,这个问题困扰了我一下午,终于在晚上的时候找到了原因,下面给大家分享一下代码.
1.dao层接口及实现类.
2.service层接口及实现类
3.ApplicationContext.xml
4.测试代码
5.未进行测试前数据库内容
测试后数据库内容:
从图中我们可以看到转账业务成功执行.而现在我们将service实现类中的int i = 1/0;取消注释的话就会出现问题
大家可以看到汇款方汇出了钱,而收款方没有收到
6.最终我找到问题的所在,在测试代码中的 xmlPath变量applicationContext.xml前面加上"/",问题解决.
修改后的代码:
我们再查看一下数据库: