1、 编程式事务
Spring 事务管理有两种方式:
编程式事务:通过编码方式实现事务;
声明式事务:基于AOP实现,如 @Transactional 声明式注解。
2、 实现原理
编程式事务基于TransactionTemplate实现,TransactionTemplate继承TransactionOperations接口
TransactionOperations提供有返回结果执行事务操作和无返回结果执行事务操作
TransactionOperations 默认实现 executeWithoutResult 方法
public interface TransactionOperations {
@Nullable
<T> T execute(TransactionCallback<T> action) throws TransactionException;
default void executeWithoutResult(Consumer<TransactionStatus> action) throws TransactionException {
execute(status -> {
action.accept(status);
return null;
});
}
}
TransactionTemplate 实现 execute 方法
public class TransactionTemplate extends DefaultTransa