关于@Transactional注解
@Transactional(rollbackFor = Exception.class)
rollbackFor 可指定对应exception异常时,也可回滚。
不建议将该注解直接使用在整个类上。
分享个人遇到的问题:
在写登录接口时,将@Transactional(rollbackFor = Exception.class)放在类上,导致登录逻辑校验完成,远程调用auth服务获取token时,项目报错,在auth服务里我写的还有一个用户是否存在校验方法,在这里如果是新用户注册,使用了这个注解需要整个方法走完,数据库里才会执行添加用户数据,所以当登录逻辑走完,调用auth服务时,使用了此注解,数据库里还未添加新用户数据,auth服务用户校验时就会报用户不存在,登录方法中调用的auth服务就会调用失败,登录错误,数据回滚,用户注册失败。
因此,在写登录接口时,注意不要使用此事务注解。