项目里面有个注册的方法,流程比较多,所以会用到事务,用的springboot,事务自动开启,然后在对应方法上面加上了
@Transactional(rollbackFor = Exception.class)
然后在里面有可能 出现异常的地方加上了
throw new Exception
正常来说这是没什么问题的,但我忽略了一个问题就是,这个类是继承了一个自定义接口的,虽然我为这个类加上
@Component注解,但是在项目运行中,某一次出现数据异常,竟然没有回滚,导致了前面的数据存储成功了,后续的代码没有执行到,反复确认了好多次都没有找到是什么原因,还直接获取了这个类,直接调用这个方法,手动写了个异常,都成功回滚了
突然灵光一现,把事务注解加到了接口里面的方法上,然后再执行,成功回滚,实现类上加不上都无所谓,这真是个坑啊