Boolean flag = transactionTemplate.execute(new TransactionCallback() { @Override public Boolean doInTransaction(TransactionStatus status) { transReqDOMapperExt.updateByTransNo(updateTransReqDO); repayPlanDOMapperExt.freezeByTransNo(freezeRepayPlanDO); return Boolean.TRUE; }
});
public interface TransactionCallback {
T doInTransaction(TransactionStatus var1);
}
在 transactionTemplate.execute中传入TransactionCallback接口的实现方法 doInTransaction ,业务处理方法放在doInTransaction 中,在execute方法中再执行doInTransaction 中的方法,在执行后进行提交或者回滚的操作
感觉这有点像代理模式的思维方式。使用回调TransactionCallback,使操作添加上了事务,这一招可以学一下