springboot中事务管理器是自动装配注入spring容器的
进入Transactional可以看出它默认的的Propagation是REQUIRED
public enum Propagation {
//当前的事物不存在会创建一个新的事物,当前有事物则加入,子方法会运行在事物中
REQUIRED(0),
//如果当前有事物,则使用事物,如果当前没有事务,则不使用事物
SUPPORTS(1),
//如果当前没有事务,则报错
MANDATORY(2),
//不管当前有没有事务,自己创建一个新的事物使用
REQUIRES_NEW(3),
//不管当前有没有事务,自己不使用事物
NOT_SUPPORTED(4),
//如果当前存在事务则抛出异常
NEVER(5),
//父子事务 ,父事务异常,则父子事务一起回滚,子事务异常,父事务可以根据情况选择是否回滚
NESTED(6);
private final int value;
private Propagation(int value) {
this.value = value;
}
public int value() {
return this.value;
}
}