在业务层声明 transactionTemplate 并且声称一个set方法等着spring来注入
在需要事物控制的地方执行 execute。但是这个execute需要一个参数
需要的参数是TransactionCollback但是这个是一个接口。想用的话就需要找他它的实现类
这里不找实现类,就写匿名内部类
生成未实现的方法。生成的方法就叫做doInTransaction
就可以把我们的主要代码挪进来
这样涉及到事务提交的地方。都需要代码加在transactionTemplate的execute方法里面。这样产生很多重复性的代码
背离了AOP的思想。重复代码提取出来
编程式的事务可以实现。但是由灵活变成 不灵活了。
Service需要注入模板对象
运行测试
事务被控制住了
注释异常
转账也成功
因为重复代码比较多,所以出厂的记录不高
原文地址:https://www.cnblogs.com/wangjunwei/p/11372449.html
时间: 2024-07-30 07:18:16