CallbackPreferringPlatformTransactionManager
if (txInfo.transactionAttribute != null && txInfo.transactionAttribute.rollbackOn(ex)) {}
判断属性的默认值不为nul l且判断当前的异常是RuntimeException还是Error,会返回1,其他异常返回0
public boolean rollbackOn(Throwable ex) {return ex instanceof RuntimeException || ex instanceof Error;
}
也就是RuntimeException还是Error异常会进行回滚
txInfo.getTransactionManager().rollback(txInfo.getTransactionStatus());



当前的异常不是RuntimeException和Error的会走这个分支
也就是不会回滚,会进行commit
