断更了近一年了,去年换了几份工作,有的第一天不合适就走了的,有的快转正了公司却告诉你不合适的,找工作需谨慎!! 新工作前段时间加班较多(最近好一些),并且使用公司内部框架,很难有适合大众的技能记录,正巧这周遇到一个场景,记录一下,后面有时间了也会加强学习,哈哈!
场景介绍
由于新项目在公共的请求工具类中需要记录日志,但是此工具可能超时等异常,而此异常处理方式会向上抛出让程序事务进行回滚,但是接口日志记录的功能却不能随着此事务进行回滚,需要独立进行存储数据,方便后续追查及问题定位。
实现代码
核心是使用REQUIRES_NEW 事务隔离机制挂起当前事务,开起独立事务进行业务操作,实际测试中需要调用server层有效。
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
public InterfaceLog save(InterfaceLog interfaceLog) {
//业务代码保存日志
return interfaceLog;
}