org.springframework.transaction.annotation.Transactional;
开发时都会用到@Transactional,也都知道是抛出异常的时候会回滚。那么问题来了:异常有很多种我们能不能控制(告诉)发生什么异常的时候才回滚呢? 出现这个问题的原因是我们需要定制异常。答案是肯定的
阅读@Transactional源码发现它这里有这样一个东西
Class<? extends Throwable>[] rollbackFor() default {};
意思是发生什么异常的时候进行回滚,而且而且而且(强调)令人惊喜的是这里是一个集合,这就使得我们可以在这里指定多个异常;
@Transactional(rollbackFor = {NullPointerException.class, IOException.class})
这样的代码写上去,有没有显得更加的高大上。